Obtenir la structure et le contenu OneNote
S’applique à : blocs-notes consommateur sur OneDrive | Blocs-notes d’entreprise sur Microsoft Office 365
Pour obtenir du contenu et une structure OneNote à l’aide de l’API Microsoft Graph OneNote, vous envoyez une requête GET au point de terminaison cible. Par exemple :
GET ../onenote/pages/{id}
Si la demande réussit, Microsoft Graph renvoie un code d’état HTTP 200 OK
et les entités ou le contenu que vous avez demandés. Les entités OneNote sont renvoyées sous forme d’objets JSON conformes à la spécification de la version 4.0 de OData.
Vous pouvez filtrer vos requêtes et améliorer les performances à l’aide des options de chaîne de requête.
Remarque
Si vous créez une solution qui prend en charge l’un des scénarios suivants, vous atteignez les limites de l’API OneNote :
- Sauvegarder/restaurer des sections OneNote
- Sauvegarder/restaurer des blocs-notes OneNote
Pour les opérations de sauvegarde et de restauration, consultez Meilleures pratiques pour la découverte des fichiers et la détection des modifications à grande échelle.
Construire l’URI de la requête
Pour construire l’URI de la requête, commencez avec l’URL racine du service :
https://graph.microsoft.com/v1.0/me/onenote
Ajoutez ensuite le point de terminaison de la ressource que vous souhaitez récupérer. (Les chemins d’accès aux ressources sont indiqués dans la section suivante.)
L’URI complète de votre requête ressemble à l’un de ces exemples :
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
Remarque
En savoir plus sur l’URL racine du service.
Chemins d’accès aux ressources pour les requêtes GET
Utilisez les chemins d’accès aux ressources suivants pour obtenir des pages, sections, groupes de sections, blocs-notes et ressources d’image ou de fichier.
- Collection de pages
- Entité Page
- Aperçu de la page
- Contenu HTML de la page
- Collection de sections
- Entité Section
- Collection de groupes de sections
- Entité SectionGroup
- Collection de blocs-notes
- Entité Notebook
- Ressource image ou autre ressource de fichier
Collection de pages
Recherchez des pages (métadonnées) sur tous les blocs-notes.
../pages[?filter,orderby,select,expand,top,skip,count]
Recherchez des pages (métadonnées) dans une section spécifique.
../sections/{section-id}/pages[?filter,orderby,select,expand,top,skip,count,pagelevel]
L’ordre de tri par défaut pour les pages est lastModifiedTime desc
.
La requête par défaut développe la section parent et sélectionne les propriétés id
, name
et self
de la section.
Par défaut, seules les 20 premières entrées sont renvoyées pour les requêtes Obtenir des pages. Les requêtes qui ne spécifient pas une option de chaîne de requête top renvoient un lien @odata.nextLink
dans la réponse que vous pouvez utiliser pour obtenir les 20 entrées suivantes.
Pour la collection de pages dans une section, utilisez pagelevel pour renvoyer le niveau de retrait des pages et leur ordre dans la section.
Exemple
GET ../sections/{section-id}/pages?pagelevel=true
Entité Page
Obtenez les métadonnées pour une page spécifique.
../pages/{page-id}[?select,expand,pagelevel]
Les pages peuvent développer les propriétés parentNotebook et parentSection.
La requête par défaut développe la section parent et sélectionne les propriétés id
, name
et self
de la section.
Utilisez pagelevel pour renvoyer le niveau de retrait de la page et son ordre dans sa section parent.
Exemple
GET ../pages/{page-id}?pagelevel=true
Aperçu de la page
Recherchez le contenu texte et image de prévisualisation pour une page.
../pages/{page-id}/preview
La réponse JSON contient le contenu de prévisualisation, que vous pouvez utiliser pour aider les utilisateurs à identifier les éléments contenus dans la page.
{
"@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 propriété previewText contient un extrait de texte de la page. Microsoft Graph renvoie des phrases complètes, jusqu’à un maximum de 300 caractères.
Si la page comporte une image qui peut être utilisée pour créer une interface utilisateur de prévisualisation, la propriété href dans l’objet previewImageUrl contient un lien vers une ressource image publique. Vous pouvez utiliser ce lien dans du code HTML. Sinon, href renvoie la valeur null.
Exemple
<img src="https://www.onenote.com/api/v1.0/resources/{id}/content?publicAuth=true&mimeType=image/png" />
Contenu HTML de la page
Recherchez le contenu HTML d’une page.
../pages/{page-id}/content[?includeIDs]
(en savoir plus sur le contenu HTML renvoyé)
Utilisez l’option de chaîne de requête includeIDs = true pour obtenir des ID générés utilisés pour mettre à jour la page.
Collection de sections
Recherchez toutes les sections de tous les blocs-notes appartenant à l’utilisateur, y compris les sections contenues dans des groupes de sections imbriqués.
../sections[?filter,orderby,select,top,skip,expand,count]
Recherchez toutes les sections qui sont directement sous un groupe de sections spécifique.
../sectionGroups/{sectiongroup-id}/sections[?filter,orderby,select,top,skip,expand,count]
Recherchez toutes les sections qui sont directement sous un bloc-notes spécifique.
../notebooks/{notebook-id}/sections[?filter,orderby,select,top,skip,expand,count]
Les sections peuvent développer les propriétés parentNotebook et parentSectionGroup.
L’ordre de tri par défaut pour les sections est name asc
.
La requête par défaut développe le bloc-notes parent et le groupe de sections parent et sélectionne les propriétés id
, name
et self
.
Entité Section
Recherchez une section spécifique.
../sections/{section-id}[?select,expand]
Les sections peuvent développer les propriétés parentNotebook et parentSectionGroup.
La requête par défaut développe le bloc-notes parent et le groupe de sections parent et sélectionne les propriétés id
, name
et self
.
Collection de groupes de sections
Recherchez tous les groupes de sections de tous les blocs-notes appartenant à l’utilisateur, y compris les groupes de sections imbriqués.
../sectionGroups[?filter,orderby,select,top,skip,expand,count]
Recherchez tous les groupes de sections qui sont directement sous un bloc-notes spécifique.
../notebooks/{notebook-id}/sectionGroups[?filter,orderby,select,top,skip,expand,count]
Les groupes de sections peuvent développer les propriétés sections, sectionGroups, parentNotebook et parentSectionGroup.
L’ordre de tri par défaut pour les groupes de sections est name asc
.
La requête par défaut développe le bloc-notes parent et le groupe de sections parent et sélectionne les propriétés id
, name
et self
.
Entité SectionGroup
Recherchez un groupe de sections spécifique.
../sectionGroups/{sectiongroup-id}[?select,expand]
Les groupes de sections peuvent développer les propriétés sections, sectionGroups, parentNotebook et parentSectionGroup.
La requête par défaut développe le bloc-notes parent et le groupe de sections parent et sélectionne les propriétés id
, name
et self
.
Collection de blocs-notes
Recherchez tous les blocs-notes appartenant à l’utilisateur.
../notebooks[?filter,orderby,select,top,skip,expand,count]
Les blocs-notes peuvent développer les propriétés sections et sectionGroups.
L’ordre de tri par défaut pour les bloc-notes est name asc
.
Entité Notebook
Recherchez un bloc-notes spécifique.
../notebooks/{notebook-id}[?select,expand]
Les blocs-notes peuvent développer les propriétés sections et sectionGroups.
Ressource image ou autre ressource de fichier
Recherchez les données binaires d’une ressource spécifique.
../resources/{resource-id}/$value
Vous pouvez trouver l’URI de ressource du fichier dans le code HTML de sortie de la page.
Par exemple, une balise img inclut des points de terminaison pour l’image d’origine dans l’attribut data-fullres-src et l’image optimisée dans l’attribut src.
Exemple
<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" ... />
Une balise object inclut le point de terminaison pour la ressource de fichier dans l’attribut data.
Exemple
<object
data="https://www.onenote.com/api/v1.0/me/notes/resources/{file-id}/$value"
data-attachment="fileName.pdf"
type="application/pdf" ... />
Remarque
L’obtention d’une collection de ressources n’est pas prise en charge.
Lorsque vous obtenez une ressource de fichier, vous n’avez pas besoin d’inclure un type de contenu Acceptdans la requête.
Pour plus d’informations sur les demandes GET, consultez les ressources suivantes dans la référence Microsoft Graph API REST :
Exemple de requêtes GET
Vous pouvez rechercher des entités OneNote pour obtenir uniquement les informations dont vous avez besoin. Les exemples suivants présentent certaines façons d’utiliser des options de chaîne de requête prises en charge dans des requêtes GET à Microsoft Graph.
Rappel :
toutes les requêtes GET commencent par l’URL racine du service.
Exemples :
https://www.onenote.com/api/v1.0/me/notes
ethttps://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/
Les espaces dans la chaîne de requête d’URL doivent utiliser le codage %20.
Exemple :
filter=title%20eq%20'biology'
Les noms de propriété et les comparaisons de chaînes OData sont sensibles à la casse. Nous vous recommandons d’utiliser la fonction tolower OData pour les comparaisons de chaînes.
Exemple :
filter=tolower(name) eq 'spring'
filtre
Obtient toutes les pages créées par une application spécifique.
[GET] ../pages?filter=createdByAppId eq 'WLID-000000004C12821A'
select
Obtenez le titre, les liens du client OneNote et le lien contentUrl pour toutes les pages.
[GET] ../pages?select=title,links,contentUrl
expand
Obtenez tous les blocs-notes, puis développez les sections et les groupes de sections.
[GET] ../notebooks?expand=sections,sectionGroups
Obtenez un groupe de sections spécifique, puis développez les sections et les groupes de sections.
[GET] ../sectionGroups/{sectiongroup-id}?expand=sections,sectionGroups
Obtenez une page, puis développez sa section parent et son bloc-notes parent.
[GET] ../pages/{page-id}?expand=parentSection,parentNotebook
expand (plusieurs niveaux)
Obtenez tous les blocs-notes et développez leurs sections et groupes de sections, puis développez toutes les sections dans chaque groupe de sections.
[GET] ../notebooks?expand=sections,sectionGroups(expand=sections)
Remarque
Le développement des parents d’entités enfant ou le développement d’enfants d’entités parent crée une référence circulaire et n’est pas pris en charge.
expand & select (plusieurs niveaux)
Obtenez le nom et le lien self d’un groupe de sections spécifique, puis obtenez le nom et les liens self de toutes ses sections.
[GET] ../sectionGroups/{sectiongroup-id}?expand=sections(select=name,self)&select=name,self
Obtenez le nom et le lien self de toutes les sections, puis obtenez le nom et l’heure de création du bloc-notes parent de chaque section.
[GET] ../sections?expand=parentNotebook(select=name,createdTime)&select=name,self
Obtenez le titre et l’ID de toutes les pages ; obtenez le nom de la section parent et du bloc-notes parent.
[GET] ../pages?select=id,title&expand=parentSection(select=name),parentNotebook(select=name)
expand & levels (plusieurs niveaux)
Obtenez tous les blocs-notes, sections et groupes de sections.
[GET] ../notebooks?expand=sections,sectionGroups(expand=sections,sectionGroups(levels=max;expand=sections))
filtre
Obtenez toutes les sections créées en octobre 2014.
[GET] ../sections?filter=createdTime ge 2014-10-01 and createdTime le 2014-10-31
Obtenez les pages créées par une application spécifique depuis le 1er janvier 2015.
[GET] ../pages?filter=createdByAppId eq 'WLID-0000000048118631' and createdTime ge 2015-01-01
filter et expand
Obtenez toutes les pages dans un bloc-notes spécifique. L’API renvoie 20 entrées par défaut.
[GET] ../pages?filter=parentNotebook/id eq '{notebook-id}'&expand=parentNotebook
Obtenez le nom et le lien pagesUrl de toutes les sections dans le bloc-notes School. Les comparaisons de chaînes OData sont sensibles à la casse, par conséquent, il est recommandé d’utiliser la fonction tolower.
[GET] ../notebooks?filter=tolower(name) eq 'school'&expand=sections(select=name,pagesUrl)
filter, select et orderby
Obtenez le nom et le lien pagesUrl de toutes les sections dont le nom contient le terme spring. Classez les sections par date de dernière modification.
[GET] ../sections?filter=contains(tolower(name),'spring')&select=name,pagesUrl&orderby=lastModifiedTime desc
orderby
Obtenez les 20 premières pages classées selon la propriété createdByAppId et par date de création la plus récente. L’API renvoie 20 entrées par défaut.
[GET] ../pages?orderby=createdByAppId,createdTime desc
filtre & haut
Obtenez les cinq pages les plus récentes créées depuis le 1er janvier 2015. L’API renvoie 20 entrées par défaut avec un maximum de 100. L’ordre de tri par défaut pour les pages est lastModifiedTime desc
.
[GET] ../pages?filter=createdTime ge 2015-01-01&top=5
filtre & & supérieur ignorer
Obtenez les cinq pages suivantes dans le jeu de résultats .
[GET] ../pages?filter=createdTime ge 2015-01-01&top=5&skip=5
Et les cinq suivantes.
[GET] ../pages?filter=createdTime ge 2015-01-01&top=5&skip=10
Remarque
Si top et filter sont appliqués à la même requête, les résultats incluent uniquement les entités qui correspondent aux deux critères.
select
Obtenez le nom, l’heure de création et le lien self de toutes les sections dans les blocs-notes de l’utilisateur.
[GET] ../sections?select=name,createdTime,self
Obtenez le titre, l’heure de création et les liens de client OneNote pour une page spécifique.
[GET] ../pages/{page-id}?select=title,createdTime,links
select & expand & filter (plusieurs niveaux)
Obtenez le nom et le lien pagesUrl de toutes les sections dans le bloc-notes par défaut de l’utilisateur.
[GET] ../notebooks?select=name&expand=sections(select=name,pagesUrl)&filter=isDefault eq true
top, select et orderby
Obtenez le titre et le lien self pour les 50 premières pages, classées par titre, par ordre alphabétique. L’API renvoie 20 entrées par défaut avec un maximum de 100. L’ordre de tri par défaut pour les pages est lastModifiedTime desc
.
[GET] ../pages?top=50&select=title,self&orderby=title
skip, top, select et orderby
Obtenez les pages 51 à 100. L’API renvoie 20 entrées par défaut avec un maximum de 100.
[GET] ../pages?skip=50&top=50&select=title,self&orderby=title
Remarque
Les demandes GET pour les pages qui récupèrent le nombre d’entrées par défaut (autrement dit, elles ne spécifient pas d’expression supérieure ) retournent un lien @odata.nextLink dans la réponse que vous pouvez utiliser pour obtenir les 20 entrées suivantes.
Options de chaîne de requête OData prises en charge
Lorsque vous envoyez des requêtes GET à Microsoft Graph, vous pouvez utiliser les options de chaîne de requête OData pour personnaliser votre requête et obtenir simplement les informations dont vous avez besoin. Elles peuvent également améliorer les performances en réduisant le nombre d’appels au service et la taille de la charge utile de la réponse.
Remarque
Pour des raisons de lisibilité, les exemples de cet article n’utilisent pas l’encodage de %20 pour cent requis pour les espaces dans la chaîne de requête d’URL : filter=isDefault%20eq%20true
Option de requête | Exemple et description |
---|---|
count |
Décompte des entités de la collection. La valeur est renvoyée dans la propriété @odata.count de la réponse. |
expand |
Les propriétés de navigation à renvoyer incorporées dans la réponse. Les propriétés suivantes sont prises en charge pour les expressions expand : Par défaut, les requêtes GET de pages développent parentSection et sélectionnent les propriétés id, name et self de la section. Les requêtes GET par défaut pour les sections et groupes de sections développent à la fois parentNotebook et parentSectionGroup, puis sélectionnent les propriétés id, name et self des parents. Utilisable pour une seule entité ou collection. |
filtre |
Expression booléenne indiquant d’inclure ou non une entrée dans le jeu de résultats. Prend en charge les fonctions et opérateurs OData suivants : Les noms de propriété et les comparaisons de chaînes OData sont sensibles à la casse. Nous vous recommandons d’utiliser la fonction tolower OData pour les comparaisons de chaînes. |
orderby |
Propriétés régissant l’ordre de tri, avec un ordre de tri facultatif asc (défaut) ou desc. Vous pouvez trier selon n’importe quelle propriété de l’entité dans la collection demandée. L’ordre de tri par défaut pour les blocs-notes, les groupes de sections et les sections est Séparez les propriétés par des virgules et indiquez-les dans l’ordre dans lequel vous souhaitez les appliquer. Les noms des propriétés sont sensibles à la casse. |
select |
Les propriétés à renvoyer. Utilisable pour une seule entité ou collection. Séparez les propriétés multiples à l’aide de virgules. Les noms des propriétés sont sensibles à la casse. |
skip |
Nombre d’entrées à ignorer dans le jeu de résultats. Généralement utilisé pour obtenir des résultats de pagination. |
top |
Nombre d’entrées à renvoyer dans le jeu de résultats, jusqu’à un maximum de 100. La valeur par défaut est 20. |
Microsoft Graph fournit également l’option de chaîne de requête pagelevel
que vous pouvez utiliser pour obtenir le niveau et l’ordre des pages dans la section parent. S’applique uniquement aux requêtes pour les pages d’une section spécifique ou aux requêtes d’une page spécifique.
Exemples
GET ../sections/{section-id}/pages?pagelevel=true
GET ../pages/{page-id}?pagelevel=true
Fonctions et opérateurs OData pris en charge
Microsoft Graph prend en charge les fonctions et opérateurs OData suivants dans les expressions filter. Lorsque vous utilisez des expressions OData, gardez à l’esprit les points suivants :
Les espaces dans la chaîne de requête d’URL doivent être remplacés par le codage
%20
.Exemple :
filter=isDefault%20eq%20true
Les noms de propriété et les comparaisons de chaînes OData sont sensibles à la casse. Nous vous recommandons d’utiliser la fonction tolower OData pour les comparaisons de chaînes.
Exemple :
filter=tolower(name) eq 'spring'
Opérateur de comparaison | Exemple |
---|---|
eq (égal à) |
createdByAppId eq '{app-id}' |
ne (différent de) |
userRole ne 'Owner' |
gt (supérieur à) |
createdTime gt 2014-02-23 |
ge (supérieur ou égal à) |
lastModifiedTime ge 2014-05-05T07:00:00Z |
lt (inférieur à) |
createdTime lt 2014-02-23 |
le (inférieur ou égal à) |
lastModifiedTime le 2014-02-23 |
Opérateur logique | Exemple |
---|---|
et | createdTime le 2014-01-30 and createdTime gt 2014-01-23 |
ou | createdByAppId eq '{app-id}' or createdByAppId eq '{app-id}' |
not | not contains(tolower(title),'school') |
Fonction de chaîne | Exemple |
---|---|
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' |
Propriétés de l’entité OneNote
Les expressions de requête filter, select, expand et orderby peuvent inclure des propriétés des entités OneNote.
Exemple
../sections?filter=createdTime ge 2015-01-01&select=name,pagesUrl&orderby=lastModifiedTime desc
Les noms des propriétés sont sensibles à la casse dans les expressions de requête.
Pour la liste des propriétés et les types de propriété, consultez les ressources suivantes dans la référence Microsoft Graph API REST :
L’option de chaîne de requête expand peut être utilisée avec les propriétés de navigation suivantes :
- Pages : parentNotebook, parentSection
- Sections : parentNotebook, parentSectionGroup
- Groupes de sections : sections, sectionGroups, parentNotebook, parentSectionGroup
- Blocs-notes : sections, sectionGroups
Informations de la requête et de la réponse pour les requêtes GET
Données des requêtes | Description |
---|---|
Protocole | Toutes les demandes utilisent le protocole HTTPS SSL/TLS. |
En-tête Authorization |
En cas de jeton manquant ou non valide, la requête échoue et le code d’état 401 s’affiche. Consultez l’article relatif à l’authentification et aux autorisations. |
En-tête Accept |
|
Données de réponse | Description |
---|---|
Code de succès | Code d’état HTTP 200. |
Corps de la réponse | Une représentation OData de l’entité ou de l’ensemble d’entités défini au format JSON, la page HTML ou les données binaires de la ressource de fichier. |
Erreurs | En cas d’échec de la requête, l’API renvoie des erreurs dans l’objet @api.diagnostics dans le corps de la réponse. |
En-tête X-CorrelationId | GUID qui permet d’identifier la requête de manière unique. Vous pouvez utiliser cette valeur, ainsi que la valeur de l’en-tête Date, quand vous travaillez avec le Support Microsoft pour résoudre des problèmes. |
Construction de l’URL racine du service des notes Microsoft Graph
L’URL racine des notes Microsoft Graph utilise le format suivant pour tous les appels effectués aux notes Microsoft Graph :
https://graph.microsoft.com/{version}/me/onenote/
Le segment version
dans l’URL représente la version de Microsoft Graph que vous souhaitez utiliser. Utilisez v1.0
pour le code de production stable. Utilisez beta
pour tester une fonctionnalité en cours de développement. Les fonctions et fonctionnalités en version bêta peuvent être sujettes à des modifications. Nous vous recommandons donc de ne pas les utiliser dans votre code de production.
Utilisez me
pour le contenu OneNote auquel l’utilisateur actuel peut accéder (contenu propriétaire et partagé). Utilisez users/{id}
pour le contenu OneNote que l’utilisateur spécifié (dans l’URL) a partagé avec l’utilisateur actuel. Utilisez Microsoft Graph pour obtenir les identifiants utilisateur.
Autorisations pour les requêtes GET
Pour obtenir créer la structure ou le contenu OneNote, demandez les autorisations appropriées.
Les étendues suivantes autorisent les requêtes GET à Microsoft Graph. Choisissez le niveau d’autorisation le plus faible requis par votre application pour faire son travail.
Choisissez parmi les autorisations suivantes :
- Notes.read
- Notes.ReadWrite
- Notes.ReadWrite.All
Pour en savoir plus sur les étendues d’autorisation et leur fonctionnement, consultez l’article Référence des autorisations de Microsoft Graph.