Trabajar con blocs de notas de clase asincrónicos
Se aplica a: Blocs de notas empresariales en Office 365
Escuelas, colegios y universidades de todo el mundo utilizan blocs de notas de clase OneNote para ayudar a promover la productividad, el compromiso y la colaboración. Puede usar blocs de notas de clase para todo tipo de clase, proyecto, término y tarea.
El extremo de classNotebooks se usa para realizar tareas comunes de blocs de notas de clase, como la creación de blocs de notas de clase, así como agregar o quitar a los alumnos en llamadas asincrónicas.
Nota
La API de OneNote proporciona el extremo ClassNotebooks para operaciones que son específicas para blocs de notas de clase.
API asíncrona
Para realizar llamadas asíncronas al extremo del classNotebooks , envíe una solicitud con un encabezado Prefer: respond-async
.
Respuesta
Datos de respuesta | Descripción |
---|---|
Código correcto | Un código de estado HTTP de estado 202. |
Encabezado de ubicación | La URL para sondear el estado de la operación. El sondeo del extremo de la operación devuelve un objeto OperationModel que contiene el estado de la operación y otra información. |
Encabezado X-CorrelationId | GUID que identifica la solicitud de forma única. Puede usar este valor, además del valor del encabezado de fecha, al trabajar con el soporte técnico de Microsoft para solucionar problemas. |
Modelo de operación
Modelo de operación | Descripción |
---|---|
Id | El identificador de la operación. |
Estado | El estado puede ser el siguiente: completado, en ejecución, no iniciado, o no se pudo. - Si es completado, la propiedad resourceLocation contiene el extremo del recurso para el nuevo classNotebook. - Si se está ejecutando, el createdDateTime y lastActionDateTime muestran cuándo se creó la solicitud y cuándo se ejecutó por última vez. - Si falló, el error y las propiedades @api.diagnostics proporcionan información del error. |
createdDateTime | Muestra cuándo se creó la solicitud. |
lastActionDateTime | Muestra cuándo se creó la solicitud y cuando se ejecutó por última vez. |
resourceLocation | El extremo para el recurso. |
resourceId | El identificador del recurso. |
Crear el URI de la solicitud
Para construir el URI de la solicitud, consulte construir el URI de la solicitud en el tema sobre cómo trabajar con blocs de notas de clase.
Crear blocs de notas de clase
Para crear un bloc de notas de clase en una llamada asincrónica, enviar una solicitud POST al extremo de classNotebooks con el encabezado Prefer: respond-async
.
POST ../classNotebooks
Para el cuerpo del mensaje y el objeto JSON con los parámetros de creación del bloc de notas de clase, consulte Crear blocs de notas de clase.
Ejemplo
La siguiente solicitud crea un bloc de notas de clase llamado Matemáticas 101.
Solicitud
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
}
Respuesta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/classnotebook-ee91aafb-5685-4357-9465-77d611ef064c
Sondee el extremo de ubicación de la operación para obtener el estado de la operación de creación de clase.
Solicitud
GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebook-ee91aafb-5685-4357-9465-77d611ef064c
Respuesta
{
"@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"
}
Agregar alumnos y profesores
Si agrega a alumnos y profesores, les dará acceso al bloc de notas de clase. Agregar un alumno también crea un grupo de secciones de alumno. Este grupo de secciones solo es accesible para el alumno y el profesor, y contiene las secciones de los alumnos que están definidas para el bloc de notas.
Para agregar a un alumno o profesor a un bloc de notas de clase en una llamada asincrónica, envíe una solicitud POST al extremo de adecuado con un encabezado Prefer: respond-async
.
Agregar un alumno
POST ../classNotebooks/{notebook-id}/students
Agregar a un profesor
POST ../classNotebooks/{notebook-id}/teachers
Para el cuerpo del mensaje y el objeto JSON con los parámetros de creación del bloc de notas de clase, vea Agregar a los alumnos o profesores.
Ejemplo
La siguiente solicitud agrega un profesor al bloc de notas de clase especificado.
Solicitud
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"
}
Respuesta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9
Sondee el extremo de ubicación de la operación para obtener el estado de la operación de agregar profesor.
Solicitud
GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9
Respuesta
{
"@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"
}
Eliminar alumnos y profesores
La eliminación de alumnos y profesores de un bloc de notas de clase revoca su acceso al bloc de notas, pero no elimina ningún contenido. Para quitar a un alumno o profesor de un bloc de notas de clase en una llamada asincrónica, envíe una solicitud DELETE al extremo adecuado con EL encabezado Prefer: respond-async
.
Quitar un alumno
DELETE ../classNotebooks/{notebook-id}/students/{student-id}
Eliminar un profesor
DELETE ../classNotebooks/{notebook-id}/teachers/{teacher-id}
Puede eliminar un alumno o un profesor por solicitud.
Ejemplo
La siguiente solicitud elimina al profesor especificado del bloc de notas de clase especificado.
Solicitud
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
Respuesta
HTTP/1.1 202 Accepted
Location: https://www.onenotecom/api/v1.0/me/notes/operations/classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a
Sondee el extremo de ubicación de la operación para obtener el estado de la operación de eliminar profesor.
Solicitud
GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a
Respuesta
{
"@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"
}
Transferir el bloc de notas
Para transferir un bloc de notas de un profesor a otro en una llamada asincrónica, envíe una solicitud POST al extremo de classNotebooks .
POST ../classnotebooks/{notebook-id}/Microsoft.OneNote.Api.classnotebooktransfer
Esta API requiere privilegios de administrador de cuentas empresariales.
En el cuerpo del mensaje, enviar el objeto JSON con la parámetros de bloc de notas de clase de transferencia.
{
"ClassNotebookTransfer" : {
"sourceTeacher": {
"principalType":"Person",
"id":"alias@tenant"
},
"destinationTeacher" : {
"principalType":"Person",
"id":"alias@tenant"
},
"destinationNotebookName": "notebook-name"
}
}
Parámetro | Descripción |
---|---|
destinationNotebookName | El nombre del bloc de notas en el destino. |
destinationTeacher | Un objeto de entidad principal de seguridad. |
sourceTeacher | Un objeto de entidad principal de seguridad. |
El origen y destino Profesor se representan mediante un objeto de entidad principal de seguridad que contiene los siguientes parámetros.
Parámetro | Descripción |
---|---|
id | El nombre principal de usuario de Office 365. Para obtener más información acerca de los usuarios y grupos, vea la documentación de la API Azure AD Graph. |
principalType | Usuario |
Ejemplo
En el ejemplo siguiente se transfiere un bloc de notas de clase denominado Math 101.
Solicitud
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"
}
}
Respuesta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/transfer-9a43afaa-7dc9-4405-b661-b735ebf722a0
Sondee el extremo de Ubicación de la operación para obtener el estado del bloc de notas de transferencia.
Solicitud
GET https://www.onenote.com/api/v1.0/me/notes/operations/transfer-9a43afaa-7dc9-4405-b661-b735ebf722a0
Respuesta
{
"@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"
}
Actualizar membresía
Para actualizar la pertenencia de un bloc de notas de clase en una llamada asincrónica, enviar una solicitud POST al extremo de classNotebooks con un encabezado Prefer: respond-async
.
POST
../groups/{groupId}/classnotebooks/Microsoft.OneNote.Api.UpdateMembership
Para el cuerpo del mensaje y el objeto JSON con los parámetros de acción de actualización de pertenencia, vea la sección Actualizar pertenencia en trabajar con blocs de notas de clase.
Ejemplo
El ejemplo siguiente sincroniza el bloc de notas de clase predeterminado de un grupo unificado.
Solicitud
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
Respuesta
HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/updatemembership-9a43afaa-7dc9-4405-b661-b735ebf722a0
Sondee el extremo de Ubicación de la operación para obtener el estado de la pertenencia de la actualización de un bloc de notas de clase.
Solicitud
GET https://www.onenote.com/api/v1.0/me/notes/operations/updatemembership-9a43afaa-7dc9-4405-b661-b735ebf722a0
Respuesta
{
"@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"
}