Obtener el contenido y la estructura de OneNote
Se aplica a: Blocs de notas para consumidores de OneDrive | Blocs de notas empresariales de Microsoft 365
Para obtener el contenido y la estructura de OneNote mediante la API de Microsoft Graph OneNote, debe enviar una solicitud GET al punto final de destino. Por ejemplo:
GET ../onenote/pages/{id}
Si la solicitud es correcta, Microsoft Graph devuelve un código de estado HTTP 200 OK
y las entidades o el contenido que ha solicitado. Las entidades de OneNote se devuelven como objetos JSON que cumplen la especificación de la versión 4.0 de OData.
Puede filtrar las consultas y mejorar el rendimiento usando las opciones de la cadena de consulta.
Nota:
Si está creando una solución que admite uno de los siguientes escenarios, llegará a las limitaciones de la API de OneNote:
- Copias de seguridad y restauración de secciones de OneNote
- Copia de seguridad y restauración de blocs de notas de OneNote
Para las operaciones de copia de seguridad y restauración, consulte Prácticas recomendadas para descubrir archivos y detectar cambios a escala.
Crear el URI de la solicitud
Para crear el URI de la solicitud, comience con la dirección URL raíz del servicio:
https://graph.microsoft.com/v1.0/me/onenote
Después, anexe el extremo del recurso que desea recuperar. (Las rutas de acceso de recursos se muestran en la siguiente sección).
Su URI de solicitud completa tendrá un aspecto similar a uno de estos ejemplos:
https://graph.microsoft.com/v1.0/me/onenote/notebooks/{id}/sections
https://graph.microsoft.com/v1.0/me/onenote/notes/pages
https://graph.microsoft.com/v1.0/me/onenote/pages?select=title,self
Nota:
Obtenga más información sobre la URL de raíz del servicio.
Rutas de acceso de recursos para las solicitudes GET
Use las siguientes rutas de acceso de recursos para obtener páginas, secciones, grupos de secciones, blocs de notas, imágenes u otros recursos de archivos.
- Colección de páginas
- Entidad de página
- Vista previa de la página
- Contenido HTML de la página
- Colección de sección
- Entidad de sección
- Colección de SectionGroup
- Entidad de SectionGroup
- Colección de blocs de notas
- Entidad de bloc de notas
- Imágenes u otros recursos de archivo
Colección de páginas
Obtenga páginas (metadatos) en todos los blocs de notas.
../pages[?filter,orderby,select,expand,top,skip,count]
Obtenga páginas (metadatos) de una sección específica.
../sections/{section-id}/pages[?filter,orderby,select,expand,top,skip,count,pagelevel]
El criterio de ordenación predeterminado para páginas es lastModifiedTime desc
.
La consulta predeterminada expande la sección principal y selecciona y selecciona las propiedades id
, name
y self
de la sección.
De forma predeterminada, solo se devuelven las 20 entradas principales para las solicitudes GET pages. Las solicitudes que no se especifican una opción de cadena de consulta superior devuelven un vínculo @odata.nextLink
en la respuesta que puede usar para obtener las siguientes 20 entradas.
Para la colección de páginas de una sección, use pagelevel para obtener el nivel de sangría de las páginas y su orden en la sección.
Ejemplo
GET ../sections/{section-id}/pages?pagelevel=true
Entidad de página
Obtenga los metadatos de una página específica.
../pages/{page-id}[?select,expand,pagelevel]
Las páginas pueden expandir las propiedades parentNotebook y parentSection.
La consulta predeterminada expande la sección principal y selecciona y selecciona las propiedades id
, name
y self
de la sección.
Use pagelevel para obtener el nivel de sangría de la página y su orden en la sección principal.
Ejemplo
GET ../pages/{page-id}?pagelevel=true
Vista previa de la página
Obtenga el contenido de vista previa de texto e imágenes de una página.
../pages/{page-id}/preview
La respuesta JSON contiene el contenido de la vista previa, que puede usar para ayudar a los usuarios a identificar los elementos en la página.
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#Microsoft.OneNote.Api.PagePreview",
"previewText":"text-snippet",
"links":{
"previewImageUrl":{
"href":"https://www.onenote.com/api/v1.0/resources/{id}/content?publicAuth=true&mimeType=image/png"
}
}
}
La propiedad previewText contiene un fragmento de texto de la página. Microsoft Graph devuelve frases completas, hasta un máximo de 300 caracteres.
Si la página tiene una imagen que puede usarse para crear una vista previa de la interfaz de usuario, la propiedad href en el objeto previewImageUrl contiene un vínculo a un recurso de imagen público. Puede usar este vínculo en HTML. En caso contrario, href devuelve un valor nulo.
Ejemplo
<img src="https://www.onenote.com/api/v1.0/resources/{id}/content?publicAuth=true&mimeType=image/png" />
Contenido HTML de la página
Obtenga el contenido HTML de una página.
../pages/{page-id}/content[?includeIDs]
(obtenga más información sobre contenido HTML devuelto)
Use la opción de cadena de consulta includeIDs=true para obtener ID generadas que se usan para actualizar la página.
Colección de sección
Obtenga todas las secciones de todos los blocs de notas que posee el usuario, incluyendo las secciones en grupos de secciones anidados.
../sections[?filter,orderby,select,top,skip,expand,count]
Obtenga todas las secciones que están directamente en un grupo de secciones específico.
../sectionGroups/{sectiongroup-id}/sections[?filter,orderby,select,top,skip,expand,count]
Obtenga todas las secciones que están directamente en un bloc de notas específico.
../notebooks/{notebook-id}/sections[?filter,orderby,select,top,skip,expand,count]
Las secciones pueden expandir las propiedades parentNotebook y parentSectionGroup.
El criterio de ordenación predeterminado para secciones es name asc
.
La consulta predeterminada expande el bloc de notas principal y el grupo de secciones principal y selecciona y selecciona sus propiedades id
, name
y self
.
Entidad de sección
Obtenga una sección específica.
../sections/{section-id}[?select,expand]
Las secciones pueden expandir las propiedades parentNotebook y parentSectionGroup.
La consulta predeterminada expande el bloc de notas principal y el grupo de secciones principal y selecciona y selecciona sus propiedades id
, name
y self
.
Colección de SectionGroup
Obtenga todos los grupos de secciones de todos los blocs de notas que posee el usuario, incluyendo los grupos de secciones anidados.
../sectionGroups[?filter,orderby,select,top,skip,expand,count]
Obtenga todos los grupos de secciones que están directamente en un bloc de notas específico.
../notebooks/{notebook-id}/sectionGroups[?filter,orderby,select,top,skip,expand,count]
Los grupos de secciones pueden expandir las propiedades sections, sectionGroups, parentNotebook y parentSectionGroup.
El criterio de ordenación predeterminado para grupos de secciones es name asc
.
La consulta predeterminada expande el bloc de notas principal y el grupo de secciones principal y selecciona y selecciona sus propiedades id
, name
y self
.
Entidad de SectionGroup
Obtenga un grupo de secciones específico.
../sectionGroups/{sectiongroup-id}[?select,expand]
Los grupos de secciones pueden expandir las propiedades sections, sectionGroups, parentNotebook y parentSectionGroup.
La consulta predeterminada expande el bloc de notas principal y el grupo de secciones principal y selecciona y selecciona sus propiedades id
, name
y self
.
Colección de blocs de notas
Obtenga todos los blocs de notas que posee el usuario.
../notebooks[?filter,orderby,select,top,skip,expand,count]
Los blocs de notas pueden expandir las propiedades sections y sectionGroups.
El criterio de ordenación predeterminado para blocs de notas es name asc
.
Entidad de bloc de notas
Obtenga un bloc de notas específico.
../notebooks/{notebook-id}[?select,expand]
Los blocs de notas pueden expandir las propiedades sections y sectionGroups.
Imágenes u otros recursos de archivo
Acceda a los datos binarios de un recurso específico.
../resources/{resource-id}/$value
Puede encontrar el URI del recurso de archivo en el resultado HTML de la página.
Por ejemplo, una etiqueta img incluye extremos del recurso de imagen original en el atributo data-fullres-src y de la imagen optimizada en el atributo src.
Ejemplo
<img
src="https://www.onenote.com/api/v1.0/me/notes/resources/{image-id}/$value"
data-src-type="image/png"
data-fullres-src="https://www.onenote.com/api/v1.0/resources/{image-id}/$value"
data-fullres-src-type="image/png" ... />
Una etiqueta object incluye el extremo del recurso de archivos en el atributo data.
Ejemplo
<object
data="https://www.onenote.com/api/v1.0/me/notes/resources/{file-id}/$value"
data-attachment="fileName.pdf"
type="application/pdf" ... />
Nota:
No es posible obtener una colección de recursos.
Cuando obtiene un recurso de archivos, no es necesario incluir un tipo de contenido Accept en la solicitud.
Para obtener más información sobre las solicitudes GET, consulte los siguientes recursos en la referencia de la API de REST de Microsoft Graph:
Solicitudes GET de ejemplo
Puede consultar las entidades de OneNote para obtener solo la información que necesita. Los siguientes ejemplos muestran algunas formas en las que puede usar opciones de cadena de consulta compatibles en las solicitudes GET a Microsoft Graph.
Recuerde:
Todas las solicitudes GET empiezan con la dirección URL raíz de servicio.
Ejemplos:
https://www.onenote.com/api/v1.0/me/notes
yhttps://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/
Los espacios en la cadena de consulta URL deben usar la codificación %20.
Ejemplo:
filter=title%20eq%20'biology'
Los nombres de propiedad y las comparaciones de cadenas de OData distinguen mayúsculas de minúsculas. Se recomienda usar la función tolower de OData para comparaciones de cadenas.
Ejemplo:
filter=tolower(name) eq 'spring'
filter
Obtiene todas las páginas creadas por una aplicación específica.
[GET] ../pages?filter=createdByAppId eq 'WLID-000000004C12821A'
select
Obtenga el título, los vínculos de cliente de OneNote y el vínculo contentUrl para todas las páginas.
[GET] ../pages?select=title,links,contentUrl
expand
Obtenga todos los blocs de notas y expanda sus secciones y grupos de secciones.
[GET] ../notebooks?expand=sections,sectionGroups
Obtienen un grupo de secciones específico y expanden sus secciones y grupos de secciones.
[GET] ../sectionGroups/{sectiongroup-id}?expand=sections,sectionGroups
Obtenga una página y expanda su sección principal y bloc de notas principal.
[GET] ../pages/{page-id}?expand=parentSection,parentNotebook
expand (varios niveles)
Obtenga todos los blocs de notas y expanda sus secciones y grupos de secciones, y expanden todas las secciones en cada grupo de secciones.
[GET] ../notebooks?expand=sections,sectionGroups(expand=sections)
Nota:
Los elementos primarios de expansión de entidades secundarias o secundarios de entidades principales crean una referencia circular y no es admitida.
expand & select (varios niveles)
Obtenga el nombre y el vínculo a self para un grupo de secciones específico, y obtenga el nombre y los vínculos a self para todas sus secciones.
[GET] ../sectionGroups/{sectiongroup-id}?expand=sections(select=name,self)&select=name,self
Obtienen el nombre y el vínculo a self para todas las secciones, y obtienen el nombre y la hora de creación del bloc de notas primario de cada sección.
[GET] ../sections?expand=parentNotebook(select=name,createdTime)&select=name,self
Obtenga el título y el identificador de todas las páginas, y obtenga el nombre de la sección principal y bloc de notas principal.
[GET] ../pages?select=id,title&expand=parentSection(select=name),parentNotebook(select=name)
expand & levels (varios niveles)
Obtenga todos los blocs de notas, grupos de secciones y todas las secciones.
[GET] ../notebooks?expand=sections,sectionGroups(expand=sections,sectionGroups(levels=max;expand=sections))
filter
Obtenga todas las secciones creadas en octubre de 2014.
[GET] ../sections?filter=createdTime ge 2014-10-01 and createdTime le 2014-10-31
Obtenga todas las páginas creadas por una aplicación específica desde el 1 de enero de 2015.
[GET] ../pages?filter=createdByAppId eq 'WLID-0000000048118631' and createdTime ge 2015-01-01
filter & expand
Obtenga todas las páginas de un bloc de notas específico. La API devuelve 20 entradas de forma predeterminada.
[GET] ../pages?filter=parentNotebook/id eq '{notebook-id}'&expand=parentNotebook
Obtenga el nombre y el vínculo a pagesUrl para todas las secciones del bloc de notas Escuela. Las comparaciones de cadenas OData distinguen mayúsculas de minúsculas, por lo que se recomienda usar la función tolower.
[GET] ../notebooks?filter=tolower(name) eq 'school'&expand=sections(select=name,pagesUrl)
filter & select & orderby
Obtenga el nombre y el vínculo a pagesUrl para todas las secciones que contienen el término spring en el nombre de la sección. Ordene las secciones por fecha de última modificación.
[GET] ../sections?filter=contains(tolower(name),'spring')&select=name,pagesUrl&orderby=lastModifiedTime desc
orderby
Obtenga las primeras 20 páginas ordenadas por propiedad createdByAppId y luego por fecha de creación más reciente. La API devuelve 20 entradas de forma predeterminada.
[GET] ../pages?orderby=createdByAppId,createdTime desc
filtro & superior
Obtenga las cinco páginas más recientes creadas desde el 1 de enero de 2015. La API devuelve 20 entradas de forma predeterminada con un máximo de 100. El criterio de ordenación predeterminado para páginas es lastModifiedTime desc
.
[GET] ../pages?filter=createdTime ge 2015-01-01&top=5
filtrar & omitir & superior
Obtenga las cinco páginas siguientes en el conjunto de resultados .
[GET] ../pages?filter=createdTime ge 2015-01-01&top=5&skip=5
Y las cinco siguientes.
[GET] ../pages?filter=createdTime ge 2015-01-01&top=5&skip=10
Nota:
Si la parte superior y el filtro se aplican a la misma solicitud, los resultados incluyen solo las entidades que coinciden con ambos criterios.
select
Obtenga el nombre, la hora de creación y el vínculo a self para todas las secciones en los blocs de notas del usuario.
[GET] ../sections?select=name,createdTime,self
Obtenga el título, la hora de creación y los vínculos a clientes de OneNote para una página específica.
[GET] ../pages/{page-id}?select=title,createdTime,links
select & expand & filter (varios niveles)
Obtenga el nombre y el vínculo a pagesUrl para todas las secciones en el bloc de notas predeterminado del usuario.
[GET] ../notebooks?select=name&expand=sections(select=name,pagesUrl)&filter=isDefault eq true
top & select & orderby
Obtenga el título y el vínculo self de las primeras 50 páginas, ordenadas alfabéticamente por título. La API devuelve 20 entradas de forma predeterminada con un máximo de 100. El criterio de ordenación predeterminado para páginas es lastModifiedTime desc
.
[GET] ../pages?top=50&select=title,self&orderby=title
skip & top & select & orderby
Obtienen las páginas 51 a 100. La API devuelve 20 entradas de forma predeterminada con un máximo de 100.
[GET] ../pages?skip=50&top=50&select=title,self&orderby=title
Nota:
Las solicitudes GET para las páginas que recuperan el número predeterminado de entradas (es decir, no especifican una expresión superior ) devuelven un vínculo @odata.nextLink en la respuesta que puede usar para obtener las 20 entradas siguientes.
Opciones de cadena de consultas OData admitidas
Al enviar solicitudes GET a Microsoft Graph, puede usar las opciones de cadena de consultas OData para personalizar la consulta y obtener solo la información que necesita. También puede mejorar el rendimiento al reducir el número de llamadas al servicio y el tamaño de la carga de respuesta.
Nota:
Para facilitar la lectura, los ejemplos de este artículo no utilizan la codificación porcentual de 20 % requerida para los espacios en la cadena de consulta de la URL: filter=isDefault%20eq%20true
Opción de consulta | Ejemplo y descripción |
---|---|
count |
El recuento de entidades de la colección. El valor se devuelve en la propiedad @odata.count de la respuesta. |
expand |
Las propiedades de navegación para devolver la respuesta en línea. Las siguientes propiedades son compatibles con las expresiones expand: De forma predeterminada, las solicitudes GET para páginas expanden parentSection y seleccionan las propiedades id, name y self de la sección. Las solicitudes GET predeterminadas para secciones y grupos de secciones expanden tanto parentNotebook como parentSectionGroup, y seleccionan las propiedades id, name y self del elemento primario. Puede usarse para una única entidad o una colección. |
filter |
Una expresión booleana por si desea incluir una entrada en el conjunto de resultados. Es compatible con las funciones y operadores de OData siguientes:
Los nombres de propiedad y las comparaciones de cadenas de OData distinguen mayúsculas de minúsculas. Se recomienda usar la función tolower de OData para comparaciones de cadenas. |
orderby |
Las propiedades según las cuales ordenar, con un asc opcional (predeterminado) u orden desc. Puede ordenar según cualquier propiedad de la entidad en la colección solicitada. El orden predeterminado para blocs de notas, secciones y grupos de secciones es Si tiene varias propiedades, sepárelas con comas, y ordénelas de la manera en que desea que se apliquen. Los nombres de las propiedades distinguen mayúsculas de minúsculas. |
select |
Las propiedades que se devuelven. Puede usarse para una única entidad o para una colección. Separe las distintas propiedades mediante comas. Los nombres de las propiedades distinguen mayúsculas de minúsculas. |
skip |
El número de entradas que se omiten del conjunto de resultados. Se usa normalmente para los resultados de paginación. |
top |
El número de entradas para devolver en el conjunto de resultados, hasta un máximo de 100. El valor predeterminado es 20. |
Microsoft Graph también proporciona la opción de cadena de consulta pagelevel
que puede usar para obtener el nivel y el orden de las páginas en la sección principal. Solo se aplica a las consultas para las páginas de una sección específica o para una página específica.
Ejemplos
GET ../sections/{section-id}/pages?pagelevel=true
GET ../pages/{page-id}?pagelevel=true
Operadores y funciones OData compatibles
Microsoft Graph admite los siguientes operadores y funciones OData en las expresiones filter. Al usar expresiones OData, recuerde:
Debe reemplazar los espacios en la cadena de consulta URL con la codificación
%20
.Ejemplo:
filter=isDefault%20eq%20true
Los nombres de propiedad y las comparaciones de cadenas de OData distinguen mayúsculas de minúsculas. Se recomienda usar la función tolower de OData para comparaciones de cadenas.
Ejemplo:
filter=tolower(name) eq 'spring'
Operador de comparación | Ejemplo |
---|---|
eq (igual a) |
createdByAppId eq '{app-id}' |
ne (no es igual a) |
userRole ne 'Owner' |
gt (mayor que) |
createdTime gt 2014-02-23 |
ge (mayor o igual que) |
lastModifiedTime ge 2014-05-05T07:00:00Z |
lt (menor que) |
createdTime lt 2014-02-23 |
le (menor que o igual que) |
lastModifiedTime le 2014-02-23 |
Operador lógico | Ejemplo |
---|---|
y | createdTime le 2014-01-30 and createdTime gt 2014-01-23 |
o | createdByAppId eq '{app-id}' or createdByAppId eq '{app-id}' |
not | not contains(tolower(title),'school') |
Función String | Ejemplo |
---|---|
contains | contains(tolower(title),'spring') |
endswith | endswith(tolower(title),'spring') |
startswith | startswith(tolower(title),'spring') |
length | length(title) eq 19 |
indexof | indexof(tolower(title),'spring') eq 1 |
substring | substring(tolower(title),1) eq 'spring' |
tolower | tolower(title) eq 'spring' |
toupper | toupper(title) eq 'SPRING' |
trim | trim(tolower(title)) eq 'spring' |
concat | concat(title,'- by MyRecipesApp') eq 'Carrot Cake Recipe - by MyRecipesApp' |
Propiedades de entidad de OneNote
Las expresiones de consulta filter, select, expand y orderby pueden incluir propiedades de las entidades de OneNote.
Ejemplo
../sections?filter=createdTime ge 2015-01-01&select=name,pagesUrl&orderby=lastModifiedTime desc
Los nombres de las propiedades distinguen mayúsculas de minúsculas en las expresiones de consulta.
Para obtener la lista de propiedades y los tipos de propiedades, consulte los siguientes recursos en la referencia de la API de REST de Microsoft Graph:
La opción de cadena de consulta expand se puede usar con las siguientes propiedades de navegación:
- Páginas: parentNotebook, parentSection
- Secciones: parentNotebook, parentSectionGroup
- Grupos de secciones: sections, sectionGroups, parentNotebook, parentSectionGroup
- Blocs de notas: sections, sectionGroups
Información de la solicitud y respuesta para las solicitudes GET
Datos de solicitud | Descripción |
---|---|
Protocolo | Todas las solicitudes usan el protocolo HTTPS SSL/TLS. |
Encabezado Authorization |
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 Accept |
|
Datos de respuesta | Descripción |
---|---|
Código de correcto | Un código de estado HTTP 200. |
Cuerpo de la respuesta | Una representación de OData de la entidad o entidad establecida en formato JSON, el HTML de la página, o datos binarios recursos de un recurso de archivo. |
Errores | Si se produce un error en la solicitud, la API devuelve errors en el objeto @api.diagnostics en el cuerpo de la respuesta. |
Encabezado X-CorrelationId | GUID que identifica la solicitud de forma única. Puede usar este valor junto con el valor del encabezado de fecha al trabajar con el soporte técnico de Microsoft para solucionar problemas. |
Crear la dirección URL raíz del servicio de notas de Microsoft Graph
La dirección URL raíz de notas de Microsoft Graph usa el siguiente formato para todas las llamadas a las notas de Microsoft Graph:
https://graph.microsoft.com/{version}/me/onenote/
El segmento version
de la URL representa la versión de Microsoft Graph que se quiere 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.
Use me
para contenido de OneNote al que puede obtener acceso el usuario actual (contenido compartido y del que sea propietario). Use users/{id}
para contenido de OneNote que el usuario especificado (en la URL) compartió con el usuario actual. Use Microsoft Graph para obtener identificadores de usuario.
Permisos de solicitudes GET
Para obtener el contenido o la estructura de OneNote, debe solicitar los permisos adecuados.
Los siguientes ámbitos permiten obtener solicitudes a Microsoft Graph. Elija el nivel más bajo de permisos que necesita la aplicación para hacer su trabajo.
Elija entre:
- Notes.read
- Notes.ReadWrite
- Notes.ReadWrite.All
Para obtener más información sobre los ámbitos de permiso y cómo funcionan, vea Referencias de permisos de Microsoft Graph.