Copiar blocs de notas, secciones y páginas

Se aplica a: Bloc de notas empresariales en Office 365 solamente

Para copiar un bloc de notas, una sección o una página de OneNote, envíe una solicitud POST al respectivo punto de conexión de acción de copiar. Por ejemplo:

POST ../notes/sections/{id}/copyToNotebook

Enviar un objeto de copia JSON en el cuerpo del mensaje. Si la solicitud es exitosa, la API de OneNote devuelve un código de estado HTTP 202 y un encabezado Operation-Location. Luego, puede sondear el punto de conexión de la operación para obtener el resultado.

Nota

La funcionalidad de copia es compatible con blocs de notas personales, de sitio y de grupo unificado de Office 365, pero no con blocs de notas de consumo en OneDrive.

Crear el URI de la solicitud

  1. Para construir el URI de solicitud, comience con la URL raíz del servicio de su plataforma:

    Blocs de notas en OneDrive para la Empresa

    https://www.onenote.com/api/v1.0/me/notes/

    https://www.onenote.com/api/v1.0/users/{id}/notes/

    Blocs de notas del sitio de SharePoint

    https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/

    Blocs de notas de grupos unificados

    https://www.onenote.com/api/v1.0/myOrganization/groups/{id}/notes/

  2. Agregue el respectivo punto de conexión de acción de copia:

    Copia una página en una sección

    ../pages/{id}/copyToSection

    Copiar una sección en un bloc de notas

    ../sections/{id}/copyToNotebook

    Copiar una sección en un grupo de sección

    ../sections/{id}/copyToSectionGroup

    Copiar un bloc de notas

    ../notebooks/{id}/copyNotebook

El bloc de notas se copia a la carpeta Bloc de notas en la biblioteca Documentos de destino. La carpeta Bloc de notas se crea si no existe.

La URI de la solicitud completa tendrá un aspecto similar a uno de estos ejemplos:

https://www.onenote.com/api/v1.0/me/notes/sections/{id}/copyToNotebook

https://www.onenote.com/api/v1.0/users/{id}/notes/sections/{id}/copytosectiongroup

https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/pages/{id}/copyToSection

https://www.onenote.com/api/v1.0/groups/{id}/notes/notebooks/{id}/copyNotebook

Nota

Obtenga más información sobre la dirección URL raíz del servicio.

Crear al cuerpo del mensaje

En el cuerpo del mensaje, envíe un objeto JSON que contenga los parámetros que su operación necesita. Está bien enviar un cuerpo vacío si no se necesitan parámetros.

Parámetro Descripción
id El id. del bloc de notas de destino o grupo de sección (para las secciones); o el id. de la sección de destino (para páginas).

Usado con copyToNotebook, copyToSectionGroupy copyToSection solamente.
siteCollectionId El id. de la colección de sitios de SharePoint que contiene el sitio donde copiar el elemento.

Usado con siteId, y solo se usa al copiar en un sitio de SharePoint.
siteId El id. del sitio de SharePoint donde se copia el elemento.

Usado con siteCollectionId, y solo se usa al copiar en un sitio de SharePoint.
groupId El id. del grupo donde copiar el elemento.

Se usa solo cuando se copia a un grupo unificado.
renameAs El nombre de la copia.

Usado con copyNotebook, copyToNotebooky copyToSectionGroup solamente. El valor predeterminado es el nombre del elemento existente.

Aprender como obtener bloc de notas, grupo de sección e id. de sección y obtener colección de sitios e id. de sitios. Para obtener información sobre cómo obtener id. de grupo, consulte la Documentación de la API Azure AD Graph.

Flujo de ejemplo de una operación de copia

Primero, envíe una solicitud POST a la acción de copiar en el artículo que desea copiar. Puede copiar desde bloc de notas a los que el usuario tiene acceso (propios o compartidos), siempre que el origen y el destino estén en la misma cuenta empresarial.

El siguiente ejemplo copia un bloc de notas personal en un sitio de grupo de SharePoint. La solicitud no incluye el parámetro renameAs, por lo que el nuevo bloc de notas usa el nombre existente.

POST https://www.onenote.com/api/v1.0/me/notes/notebooks/1-db247796-f4d1-4972-a869-942919bf9923/copyNotebook
Authorization: Bearer {token}
Content-Type: application/json 

{
  "siteCollectionId":"0f6dbd5d-d179-49c6-aabd-15830ea90ca8",
  "siteId":"3ba679cf-4470-466e-bc20-053bdfec75bf"
}

Nota

Las operaciones de copia respetan los permisos del bloc de notas de origen, por lo que el usuario autenticado debe poder acceder al bloc de notas de origen para copiarlo. Sin embargo, las copias no retienen los permisos de la fuente. La copia tiene permisos como si el usuario acabara de crearla.

Si la llamada es exitosa, la API de OneNote devuelve un código de estado 202 y un encabezado Operation-Location. A continuación, le mostramos un extracto de la respuesta:

HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/notebooks/1-db247796-f4d1-4972-a869-942919bf9923
X-CorrelationId: 8a211d7c-220b-413d-8022-9a946499fcfb
Operation-Location: https://www.onenote.com/api/beta/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/notes/operations/copy-8a211d7c-220b-413d-8022-9a946499fcfb
...

Después sondee el extremo Operation-Location para obtener el estado de la operación de copia:

GET https://www.onenote.com/api/beta/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/notes/operations/copy-8a211d7c-220b-413d-8022-9a946499fcfb
Authorization: Bearer {token}
Accept: application/json

La API de OneNote devuelve un objetoOperationModel que muestra el estado actual. La siguiente respuesta de ejemplo se devuelve cuando se completa el estado.

{
  "@odata.context":"https://www.onenote.com/api/beta/$metadata#myOrganization/siteCollections('0f6dbd5d-d179-49c6-aabd-15830ea90ca8')/sites('0f6dbd5d-d179-49c6-aabd-15830ea90ca8')/notes/operations/$entity",
  "id":"copy-1c5be75c-e7db-4219-8145-a2d6c3f171a33ec9f3da-2b24-4fb1-a776-fe8c8cd1410f",
  "status":"completed",
  "createdDateTime":"2015-09-16T17:32:07.048Z",
  "lastActionDateTime":"2015-09-16T17:32:17.7777639Z",
  "resourceLocation":"https://www.onenote.com/api/v1.0/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/3ba679cf-4470-466e-bc20-053bdfec75bf/notes/notebooks/1-bde29eeb-66e2-4fed-8d48-51cd1bf32511",
  "resourceId":null,"
  "error":null
}

El estado puede ser completado, en ejecución, o fallido.

  • Si es completado, la propiedad resourceLocation contiene el extremo del recurso para la nueva copia.
  • Si es en ejecución, la propiedad percentComplete muestra el porcentaje aproximado completado.
  • Si es fallido, el error y las propiedades **@api.diagnostics** proporcionan información de error.

Puede sondear el extremo de la operación hasta que la operación se complete o falle.

Información de solicitud y respuesta

Datos de solicitud Descripción
Protocolo Todas las solicitudes usan el protocolo HTTPS SSL/TLS.
Encabezado Authorization Bearer {token}, donde {token} es un token de acceso de OAuth 2.0 válido para la aplicación registrada.

Si falta o no es válido, la solicitud producirá errores con el código de estado 401. Vea Authentication and permissions (Autenticación y permisos).
Encabezado Content-Type application/json
Encabezado Accept application/json


Datos de respuesta Descripción
Código correcto Un código de estado HTTP de estado 202.
Encabezado Operation-Location 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.

Construir la URL raíz del servicio de OneNote

La dirección URL raíz del servicio OneNote utiliza el siguiente formato para todas las llamadas a la API de OneNote.

https://www.onenote.com/api/{version}/{location}/notes/

El segmento version de la URL representa la versión de la API de OneNote que desea utilizar.

  • Use v1.0 para código de producción estable.

  • Use beta para probar una característica que esté en desarrollo. Las características y la funcionalidad de la versión beta pueden cambiar, por lo que no se debe usar en el código de producción.

El segmento location de la URL representa la ubicación de los blocs de notas a los que desea acceder:

  • Blocs de notas en OneDrive para la Empresa

    • Use me para el contenido de OneNote que sea propiedad del usuario actual.

    • Use users/{id} para contenido de OneNote que el usuario especificado (en la URL) compartió con el usuario actual. Use la API de Azure AD Graph para obtener id. de usuario.

  • Blocs de notas del sitio de SharePoint

    • Los sitios de grupo y otros sitios de SharePoint pueden contener blocs de notas de OneNote en sus bibliotecas de documentos.

    • Use myOrganization/siteCollections/{id}/sites/{id} para el contenido de OneNote en un sitio de la cuenta empresarial donde el usuario actual haya iniciado sesión. Solo se admite la cuenta empresarial actual, a la que se accedió empleando la palabra clave myOrganization. Descubra cómo obtener id. de sitio.

  • Blocs de notas de grupos unificados

    • Los grupos unificados (también denominados grupos de Office 365) forman parte de la experiencia conectada de Office 365. Los miembros del grupo pueden compartir blocs de notas, archivos y correos electrónicos.

    • Utilice myOrganization/groups/{id} para el contenido de OneNote en el grupo especificado del que el usuario actual sea miembro. Los grupos unificados son el único tipo de grupo compatible. Use la API de Azure AD Graph para obtener id. de usuario.

Utilizar el método FromUrl para obtener la colección y los id. de sitios

Puede usar el método FromUrl para obtener la colección y los id. de sitios para una URL de sitio absoluta y específica. Debe realizar esta llamada solo cuando sea necesario y luego guardar los valores para usarlos en el futuro.

El formato de la URL de sitio depende de su configuración, por ejemplo https://domain.sharepoint.com/site-a o https://domain.com/sites/site-a.

Ejemplo de solicitud

GET https://www.onenote.com/api/v1.0/myOrganization/siteCollections/FromUrl(url='{full-path-to-SharePoint-site}')

Authorization: Bearer {token}

Accept: application/json

Respuesta de ejemplo

{"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#Microsoft.OneNote.Api.SiteMetadata", "siteCollectionId":"09d1a587-a84b-4264-3d15-669429be8cc5", "siteId":"d9e4d5c8-683f-4363-89ae-18c4e3da91e9"}

Requisitos para usar FromUrl y trabajar con blocs de notas del sitio de SharePoint:

  • Solo puede crear blocs de notas de OneNote, grupos de secciones, secciones y páginas en sitios que tengan una biblioteca de documentos predeterminada. (Algunas plantillas de sitio no crean una biblioteca de documentos predeterminada). Sin embargo, las solicitudes GET devuelven contenido de OneNote de todas las bibliotecas de documentos del sitio.

  • La URL raíz del servicio de OneNote es inmutable, lo que significa que no puede usar una ruta de acceso al sitio de la API de REST de SharePoint y luego añadirle el punto de conexión notes.

  • El usuario en cuyo nombre está realizando la llamada debe ser miembro del sitio.

  • FromUrl funciona solo con sitios que hayan sido indexados. Puede llevar varias horas indexar un nuevo sitio.

Permisos

Para copiar bloc de notas, secciones y páginas de OneNote, deberá solicitar los permisos correspondientes. Seleccione el nivel inferior de permisos que necesita la aplicación para funcionar correctamente.

Plataforma Ámbito de permisos
Consumidor office.onenote_create, office.onenote_update_by_app, office.onenote_update
Empresa Notes.Create, Notes.ReadWrite.CreatedByApp, Notes.ReadWrite, Notes.ReadWrite.All

Para obtener más información sobre los ámbitos de permiso y cómo funcionan, consulte los ámbitos de permisos de OneNote.

Vea también