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"
}

Vea también