Como trabalhar com blocos de anotações de classe assíncronos
Aplica-se aos: Blocos de anotações corporativos no Office 365
Escolas, faculdades e universidades em todo o mundo usam Blocos de Anotações de Classe do OneNote para ajudar a promover a produtividade, o compromisso e a colaboração. Você pode usar blocos de anotações de classe para cada aula, projeto, semestre e tarefa.
O ponto de extremidade classNotebooks é usado para executar tarefas comuns de blocos de anotações de classe, como criar blocos de anotações de classe, assim como adicionar ou remover alunos por meio de chamadas assíncronas.
Observação
A API do OneNote fornece o ponto de extremidade classNotebooks para operações específicas relacionadas a blocos de anotações de classe.
API assíncrona
Para fazer chamadas assíncronas para o ponto de extremidade classNotebooks, envie uma solicitação com um cabeçalho Prefer: respond-async
.
Resposta
Dados da resposta | Descrição |
---|---|
Código de êxito | Um código de status HTTP 202. |
Cabeçalho Location | A URL para pesquisar o status da operação. A pesquisa do ponto de extremidade da operação retorna um objeto OperationModel, que contém o status da operação e outras informações. |
Cabeçalho X-CorrelationId | Um GUID que identifica de forma exclusiva a solicitação. Você pode usar esse valor juntamente com o valor Date do cabeçalho ao trabalhar com o suporte da Microsoft para solucionar problemas. |
Modelo de operação
Modelo de operação | Descrição |
---|---|
Id | A identificação da operação. |
Status | O status pode ser: completed, running, not started, ou failed. - Se for completed, a propriedade resourceLocation contém o ponto de extremidade do recurso para a nova classNotebook. - Se for running, as propriedades createdDateTime e lastActionDateTime mostram quando a solicitação foi criada e quando foi executada pela última vez. - Se for failed, as propriedades error e @api.diagnostics fornecem informações sobre o erro. |
createdDateTime | Mostra quando a solicitação foi criada. |
lastActionDateTime | Mostra quando a solicitação foi criada e quando foi executada pela última vez. |
resourceLocation | O ponto de extremidade para o recurso. |
resourceId | O ID do recurso. |
Construção da URI da solicitação
Para construir o URI da solicitação, confira Construção do URI da solicitação no tópico Como trabalhar com blocos de anotações de classe.
Criação de blocos de anotações de classe
Para criar um bloco de anotações de classe em uma chamada assíncrona, envie uma solicitação POST para o ponto de extremidade classNotebooks com o cabeçalho Prefer: respond-async
.
POST ../classNotebooks
Para o corpo da mensagem e o objeto JSON com os parâmetros de criação do bloco de anotações de classe, confira Criação de blocos de anotação de classe.
Exemplo
A solicitação a seguir cria um bloco de anotações de classe chamado Math 101.
Solicitação
POST https://www.onenote.com/v1.0/me/notes/classNotebooks?sendemail=true
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async
{
"name": "Math 101",
"studentSections": [
"Handouts",
"Class Notes",
"Homework",
"Quizzes"
],
"teachers": [
{
"id": "teacher1@contoso.com",
"principalType": "Person"
}
],
"students": [
{
"id": "student1@contoso.com",
"principalType": "Person"
},
{
"id": "student2@contoso.com",
"principalType": "Person"
},
{
"id": "student3@contoso.com",
"principalType": "Person"
},
{
"id": "student4@contoso.com",
"principalType": "Person"
}
],
"hasTeacherOnlySectionGroup": true
}
Resposta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/classnotebook-ee91aafb-5685-4357-9465-77d611ef064c
Examine o ponto de extremidade Location da operação para obter o status da operação de criação da classe.
Solicitação
GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebook-ee91aafb-5685-4357-9465-77d611ef064c
Resposta
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"classnotebook-ee91aafb-5685-4357-9465-77d611ef064c",
"status":"completed",
"createdDateTime":"2018-06-01T23:44:29.349Z",
"lastActionDateTime":"2018-06-01T23:44:29.349Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-cb6e0bf6-1185-4daa-80a1-ded42ca1708e",
"resourceId":"1-cb6e0bf6-1185-4daa-80a1-ded42ca1708e"
}
Adição de alunos e professores
Alunos e professores devem ser adicionados para ter acesso ao bloco de anotações de classe. A adição de um aluno também cria um grupo de seções do aluno. Este grupo de seções só é acessível pelo aluno e pelo professor e contém as seções do aluno definidas para o bloco de anotações.
Para adicionar um aluno ou professor a um bloco de anotações de classe em uma chamada assíncrona, envie uma solicitação POST para o ponto de extremidade apropriado com um cabeçalho Prefer: respond-async
.
Adicionar um aluno
POST ../classNotebooks/{notebook-id}/students
Adicionar um professor
POST ../classNotebooks/{notebook-id}/teachers
Para o corpo da mensagem e o objeto JSON com os parâmetros de criação do bloco de anotações de classe, confira Adição de alunos ou professores.
Exemplo
A solicitação a seguir adiciona um professor ao bloco de anotações de classe especificado.
Solicitação
POST https://www.onenote/api/v1.0/me/notes/classNotebooks/ 1-b68a21fd-cdb3-41f1-a566-0772872a8a0c//teachers
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async
{
"id": "teacher2@contoso.com",
"principalType": "Person"
}
Resposta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9
Examine o ponto de extremidade Location da operação para obter o status da operação de adição do professor.
Solicitação
GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9
Resposta
{
"@odata.context":"https://www.onenote/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9",
"status":"completed",
"createdDateTime":"2018-06-12T22:23:47.548Z",
"lastActionDateTime":"2018-06-12T22:23:47.548Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-b68a21fd-cdb3-41f1-a566-0772872a8a0c/teachers/teacher2@contoso.net",
"resourceId":"teacher2@contoso.net"
}
Remoção de alunos ou professores
A remoção de alunos e professores de um bloco de anotações de classe revoga seu acesso ao bloco de anotações, mas não exclui nenhum conteúdo. Para remover um aluno ou professor de um bloco de anotações de classe em uma chamada assíncrona, envie uma solicitação DELETE para o ponto de extremidade apropriado com um cabeçalho Prefer: respond-async
.
Remover um aluno
DELETE ../classNotebooks/{notebook-id}/students/{student-id}
Remover um professor
DELETE ../classNotebooks/{notebook-id}/teachers/{teacher-id}
Você pode remover um aluno ou um professor por solicitação.
Exemplo
A solicitação a seguir remove o professor especificado do bloco de anotações de classe especificado.
Solicitação
DELETE https://www.onenote.com/api/v1.0/me /notes/classNotebooks/1-b68a21fd-cdb3-41f1-a566-0772872a8a0c/teachers/teacher2@contoso.net
Authorization: Bearer {token}
Accept: application/json
Prefer: respond-async
Resposta
HTTP/1.1 202 Accepted
Location: https://www.onenotecom/api/v1.0/me/notes/operations/classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a
Examine o ponto de extremidade Location da operação para obter o status da operação de remoção do professor.
Solicitação
GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a
Resposta
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a",
"status":"completed",
"createdDateTime":"2018-06-12T22:40:06.708Z",
"lastActionDateTime":"2018-06-12T22:40:06.708Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-b68a21fd-cdb3-41f1-a566-0772872a8a0c/teachers/teacher2@contoso.net",
"resourceId":"teacher2@contoso.net"
}
Transferência do bloco de anotações
Para transferir um bloco de anotações do um professor para outro em uma chamada assíncrona, envie uma solicitação POST para o ponto de extremidade classNotebooks.
POST ../classnotebooks/{notebook-id}/Microsoft.OneNote.Api.classnotebooktransfer
Esta API requer privilégios administrativos do inquilino.
No corpo da mensagem, envie o objeto JSON com os parâmetros de transferência do bloco de anotações de classe.
{
"ClassNotebookTransfer" : {
"sourceTeacher": {
"principalType":"Person",
"id":"alias@tenant"
},
"destinationTeacher" : {
"principalType":"Person",
"id":"alias@tenant"
},
"destinationNotebookName": "notebook-name"
}
}
Parâmetro | Descrição |
---|---|
destinationNotebookName | O nome do bloco de anotações no destino. |
destinationTeacher | Um objeto de segurança. |
sourceTeacher | Um objeto de segurança. |
Os professores de origem e destino são representados por um objeto de segurança que contém os seguintes parâmetros.
Parâmetro | Descrição |
---|---|
id | O nome UPN do Office 365. Para saber mais sobre usuários e grupos, confira a Documentação da API do Azure AD Graph. |
principalType | Pessoa |
Exemplo
O exemplo a seguir transfere um bloco de anotações de classe denominado Math 101.
Solicitação
POST https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-9a43afaa-7dc9-4405-b661-b735ebf722a0/Microsoft.OneNote.Api.classnotebooktransfer
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async
{
"ClassNotebookTransfer" : {
"sourceTeacher": {
"principalType":"Person",
"id":"teacher1@contososd.org"
},
"destinationTeacher" : {
"principalType":"Person",
"id":"teacher2@contososd.org"
},
"destinationNotebookName": "Math 101"
}
}
Resposta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/transfer-9a43afaa-7dc9-4405-b661-b735ebf722a0
Examine o ponto de extremidade Location da operação para obter o status da transferência do bloco de anotações.
Solicitação
GET https://www.onenote.com/api/v1.0/me/notes/operations/transfer-9a43afaa-7dc9-4405-b661-b735ebf722a0
Resposta
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"transfer9a43afaa-7dc9-4405-b661-b735ebf722a0",
"status":"completed",
"createdDateTime":"0001-01-01T00:00:00Z",
"lastActionDateTime":"0001-01-01T00:00:00Z",
"resourceId":"1-6e0cebcb-b589-4632-8b31-1ffe804652e0"
}
Atualizar associação
Para atualizar a associação de um bloco de anotações de classe em uma chamada assíncrona, enviar uma solicitação POST ao ponto de extremidade classNotebooks com um cabeçalho Prefer: respond-async
.
POST
../groups/{groupId}/classnotebooks/Microsoft.OneNote.Api.UpdateMembership
Para o corpo da mensagem e o objeto JSON com os parâmetros da ação de atualização da associação, confira a seção Atualizar associação em Como trabalhar com os blocos de anotações de classe.
Exemplo
O exemplo a seguir sincroniza o bloco de anotações de classe padrão de um grupo unificado.
Solicitação
POST https://www.onenote.com/api/v1.0/myOrganization/groups/1d13f814-83e5-4c11-8294-53bf40defd91/notes/classnotebooks/classnotebooks/Microsoft.OneNote.Api.UpdateMembership
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async
Resposta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/updatemembership-9a43afaa-7dc9-4405-b661-b735ebf722a0
Examine o ponto de extremidade Location da operação para obter o status da atualização da associação de um bloco de anotações de classe.
Solicitação
GET https://www.onenote.com/api/v1.0/me/notes/operations/updatemembership-9a43afaa-7dc9-4405-b661-b735ebf722a0
Resposta
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"updateMembership-9a43afaa-7dc9-4405-b661-b735ebf722a0",
"status":"completed",
"createdDateTime":"0001-01-01T00:00:00Z",
"lastActionDateTime":"0001-01-01T00:00:00Z",
"resourceId":"1-6e0cebcb-b589-4632-8b31-1ffe804652e0"
}