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
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/
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 clavemyOrganization
. 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.