Créer des pages OneNoteCreate OneNote pages

**S’applique à ** blocs-notes consommateur sur OneDrive | Blocs-notes de particulier sur OneDriveApplies to: Consumer notebooks on OneDrive | Enterprise notebooks on Office 365

Quand vous créez une page OneNote, vous envoyez une requête POST au point de terminaison pages:To create a OneNote page, you send a POST request to a pages endpoint. Par exemple :For example:

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


Envoyez le code HTML qui définit la page dans le corps du message.Send the HTML that defines the page in the message body. Si la requête réussit, Microsoft Graph renvoie un code d’état HTTP 201.If the request is successful, Microsoft Graph returns a 201 HTTP status code.

Remarque : pour en savoir plus sur les requêtes POST pour créer des sections, des groupes de section et des blocs-notes, consultez notre référence REST interactive.Note: To learn about the POST requests you can send to create sections, section groups, and notebooks, see our interactive REST reference.

Construction de l’URI de la requêteConstruct the request URI

Pour construire l’URI de la requête POST, commencez avec l’URL racine du service :To construct the POST request URI, start with the service root URL:

https://graph.microsoft.com/v1.0/me/onenote


Ensuite, ajoutez le point de terminaison pages :Then append the pages endpoint:

  • Créer une page dans n’importe quelle section (spécifiée par son nom)Create a page in any section (specified by section name)

    .../pages?sectionName=DefaultSection

  • Créer une page dans n’importe quelle section (spécifiée par son ID)Create a page in any section (specified by ID)

    .../sections/{section-id}/pages

Si vous créez des pages dans le bloc-notes personnel de l’utilisateur, Microsoft Graph fournit également des points de terminaison utiles pour créer des pages dans le bloc-notes par défaut :If you're creating pages in the user's personal notebook, Microsoft Graph also provides endpoints you can use to create pages in the default notebook:

  • Créer une page dans la section par défaut du bloc-notes par défautCreate a page in the default section of the default notebook

    ../pages

L’URI complète de votre requête ressemble à l’un de ces exemples :Your full request URI will look like one of these examples:

  • https://graph.microsoft.com/v1.0/me/onenote/sections/{id}/pages
  • https://graph.microsoft.com/v1.0/me/onenote/pages?sectionName=Homework

En savoir plus sur l’URL racine du service.Learn more about the service root URL.

Utilisation du paramètre d’URL sectionNameUsing the sectionName URL parameter

Les règles suivantes s’appliquent quand vous utilisez le paramètre sectionName pour créer une page dans une section nommée dans le bloc-notes par défaut :The following rules apply when using the sectionName parameter to create a page in a named section in the default notebook:

  • Seules les sections de niveau supérieur peuvent être référencées (pas les sections dans les groupes de sections).Only top-level sections can be referenced (not sections within section groups).

  • Si une section avec le nom spécifié n’existe pas dans le bloc-notes par défaut, l’API la crée.If a section with the specified name doesn't exist in the default notebook, the API creates it. Ces caractères ne sont pas autorisés pour les noms de section : ? * \ / : < > | & # " % ~These characters are not allowed for section names: ? * \ / : < > | & # " % ~

  • Les noms de section ne respectent pas la casse pendant la mise en correspondance, mais la casse est respectée pour la création des sections.Section names are case-insensitive for matching, but case is preserved when sections are created. Ainsi, « Ma Nouvelle Section » sera affichée tel quel, alors que « ma nouvelle section » devra correspondre dans les requêtes POST suivantes.So "My New Section" will display like that, but "my new section" would also match on subsequent posts.

  • Les noms de section doivent être encodés au format URL.Section names must be URL-encoded. Par exemple, les espaces doivent être encodés sous la forme %20.For example, spaces must be encoded as %20.

  • Le paramètre sectionName est uniquement valide avec l’itinéraire ../notes/pages (et non, ../notes/sections/{id}/pages).The sectionName parameter is valid only with the ../notes/pages route (not ../notes/sections/{id}/pages).

Comme les sections sont créées quand elles n’existent pas, il est plus sûr d’utiliser cet appel pour les pages créées par votre application.Because sections are created if they don't exist, it's safe to use this call with every page your app creates. Les utilisateurs peuvent renommer les sections. Toutefois, l’API crée une section avec le nom de section spécifié.Users might rename sections, but the API will create a new section with the section name that you supply.

Remarque : les liens de page renvoyés par l’API dans une section renommée atteindront toujours les anciennes pages.Note: The links returned by the API for pages in a renamed section will still reach those older pages.

Construction du corps du messageConstruct the message body

Le code HTML qui définit le contenu de la page est appelé Code HTML d’entrée.The HTML that defines page content is called input HTML. Le code HTML d’entrée prend en charge un sous-ensemble de code HTML et CSS standard, ainsi que des attributs personnalisés.Input HTML supports a subset of standard HTML and CSS, with the addition of custom attributes. (Les attributs personnalisés, tels que data-id et data-render-src, sont décrits dans l’article relatif au code HTML d’entrée et de sortie.)(Custom attributes, like data-id and data-render-src, are described in Input and output HTML.)

Envoyez le code HTML d’entrée dans le corps du message de la requête POST.Send the input HTML in the message body of the POST request. Vous pouvez envoyer le code HTML d’entrée directement dans le corps du message à l’aide du type de contenu application/xhtml+xml ou text/html, ou vous pouvez l’envoyer dans la partie « Présentation » d’une requête en plusieurs parties.You can send the input HTML directly in the message body using the application/xhtml+xml or text/html content type, or you can send it in the "Presentation" part of a multipart request.

L’exemple suivant envoie le code HTML d’entrée directement dans le corps du message.The following example sends the input HTML directly in the message body.

POST https://graph.microsoft.com/v1.0/me/onenote/pages
Authorization: Bearer {token}
Content-Type: application/xhtml+xml

<!DOCTYPE html>
<html>
  <head>
    <title>A page with a block of HTML</title>
    <meta name="created" content="2015-07-22T09:00:00-08:00" />
  </head>
  <body>
    <p>This page contains some <i>formatted</i> <b>text</b> and an image.</p>
    <img src="https://..." alt="an image on the page" width="500" />
  </body>
</html>

Si vous envoyez des données binaires, utilisez une requête en plusieurs parties.If you're sending binary data, you must use a multipart request.

Remarque : pour simplifier la programmation et la cohérence dans votre application, vous pouvez utiliser les requêtes en plusieurs parties pour créer toutes les pages.Note: To simplify programming and consistency in your app, you can use multipart requests to create all pages. Nous vous recommandons d’utiliser une bibliothèque pour construire des messages en plusieurs parties.It's a good idea to use a library to construct multipart messages. Cela vous évite de créer des charges utiles incorrectes.This reduces the risk of creating malformed payloads.

Exigences et limitations concernant le code HTML d’entrée dans les requêtes de pages POSTRequirements and limitations for input HTML in POST pages requests

Quand vous envoyez le code HTML d’entrée, tenez compte de ces exigences et limitations :When sending input HTML, be aware of these general requirements and limitations:

  • Le code HTML d’entrée doit être du XHTML bien formé et encodé au format UTF-8.Input HTML should be UTF-8 encoded and well-formed XHTML. Toutes les balises de début du conteneur doivent avoir des balises de fermeture correspondantes.All container start tags require matching closing tags. Toutes les valeurs d’attribut doivent être entourées de guillemets doubles ou simples.All attribute values must be surrounded by double- or single-quote marks.

  • Le code JavaScript, les fichiers inclus et le code CSS sont supprimés.JavaScript code, included files, and CSS are removed.

  • Les formulaires HTML sont supprimés dans leur intégralité.HTML forms are removed in their entirety.

  • Microsoft Graph prend en charge un sous-ensemble d’éléments HTML.Microsoft Graph supports a subset of HTML elements.

  • Microsoft Graph prend en charge un sous-ensemble d’attributs HTML courants et un ensemble d’attributs personnalisés, tel que l’attribut data-id utilisé pour mettre à jour des pages.Microsoft Graph supports a subset of common HTML attributes and a set of custom attributes, such as the data-id attribute used for updating pages. Consultez l’article relatif au code HTML d’entrée et de sortie pour connaître les attributs pris en charge.For supported attributes, see Input and output HTML.

Code HTML et CSS pris en charge dans les pages OneNoteSupported HTML and CSS for OneNote pages

Seuls certains éléments, attributs et propriétés sont pris en charge (au format HTML4, XHTML, CSS, HTML5, etc.).Not all elements, attributes, and properties are supported (in HTML4, XHTML, CSS, HTML5, etc.). Microsoft Graph accepte un ensemble limité de codes HTML mieux adaptés à l’utilisation qui est faite de OneNote.Instead, Microsoft Graph accepts a limited set of HTML that better fits how people use OneNote. Pour en savoir plus, consultez la page relative à la prise en charge des balises HTML dans les pages.For more information, see HTML tag support for pages. Si une balise n’est pas répertoriée, elle sera probablement ignorée.If a tag's not listed there, it'll probably be ignored.

La liste suivante décrit les types d’élément de base pris en charge par Microsoft Graph :The following list shows the basic element types that Microsoft Graph supports:

  • <head> et <body><head> and <body>

  • <title> et <meta> qui définissent le titre de la page et la date de création<title> and <meta> that set the page title and creation date

  • <h1> à <h6> pour les en-têtes de section<h1> through <h6> for section headings

  • <p> pour les paragraphes<p> for paragraphs

  • <ul>, <ol> et <li> pour les listes et éléments de liste<ul>, <ol>, and <li> for lists and list items

  • <table>, <tr> et <td>, y compris les tableaux imbriqués<table>, <tr> and <td>, including nested tables

  • <pre> pour le texte déjà mis en forme (conserve les espaces et les sauts de ligne)<pre> for preformatted text (preserves white space and line breaks)

  • <b> et <i> pour les styles de caractères gras et italique<b> and <i> for bold and italic character styles

Microsoft Graph conserve la structure sémantique et la structure de base du code HTML d’entrée quand il crée des pages, mais il convertit le code HTML d’entrée pour utiliser l’ensemble pris en charge de codes HTML et CSS.Microsoft Graph preserves the semantic content and basic structure of the input HTML when it creates pages, but it converts the input HTML to use the supported set of HTML and CSS. Les fonctionnalités qui n’existent pas dans OneNote ne peuvent pas être converties. Ainsi, elles risquent de ne pas être reconnues dans le code HTML source.Features that don't exist in OneNote have nothing to be translated to, so they might not be recognized in the source HTML.

Exemple de requêteExample request

Cet exemple de requête en plusieurs parties crée une page qui contient des images et un fichier incorporé.This example multipart request creates a page that contains images and an embedded file. La partie Présentation requise contient le code HTML d’entrée qui définit la page.The required Presentation part contains the input HTML that defines the page. La partie imageBlock1 contient les données d’image binaires et fileBlock1 contient les données de fichier binaires.The imageBlock1 part contains the binary image data, and fileBlock1 contains the binary file data. Les parties de données peuvent également contenir du code HTML. Dans ce cas, Microsoft Graph restitue le code HTML sous forme d’image sur la page OneNote.Data parts can also contain HTML, in which case Microsoft Graph renders the HTML as an image on the OneNote page.

POST https://graph.microsoft.com/v1.0/me/onenote/pages
Authorization: Bearer {token}
Content-Type: multipart/form-data; boundary=MyPartBoundary198374

--MyPartBoundary198374
Content-Disposition:form-data; name="Presentation"
Content-Type:text/html

<!DOCTYPE html>
<html>
  <head>
    <title>A page with rendered images and an attached file</title>
    <meta name="created" content="2015-07-22T09:00:00-08:00" />
  </head>
  <body>
    <p>Here's an image from an <i>online source</i>:</p>
    <img src="https://..." alt="an image on the page" width="500" />
    <p>Here's an image uploaded as <b>binary data</b>:</p>
    <img src="name:imageBlock1" alt="an image on the page" width="300" />
    <p>Here's a file attachment:</p>
    <object data-attachment="FileName.pdf" data="name:fileBlock1" type="application/pdf" />
  </body>
</html>

--MyPartBoundary198374
Content-Disposition:form-data; name="imageBlock1"
Content-Type:image/jpeg

... binary image data ...

--MyPartBoundary198374
Content-Disposition:form-data; name="fileBlock1"
Content-Type:application/pdf

... binary file data ...

--MyPartBoundary198374--

Pour consulter d’autres exemples qui vous montrent comment créer des pages contenant des images et d’autres fichiers, consultez l’article relatif à l’ajout d’images et de fichiers, nos didacticiels et nos exemples.For more examples that show how to create pages that contain images and other files, see Add images and files, our tutorials, and our samples. Découvrez également comment créer des éléments ayant une position absolue, utiliser des balises de note et extraire des données pour des captures de carte de visite, des recettes en ligne et des listes de produits.Also, learn how to create absolute positioned elements, use note tags, and extract data for business card captures and online recipe and product listings.

Microsoft Graph est strict concernant certains formats, notamment les sauts de ligne CRLF présents dans le corps d’un message en plusieurs parties.Microsoft Graph is strict about some formats, such as CRLF newlines in a multipart message body. Pour éviter de créer des charges utiles incorrectes, utilisez une bibliothèque pour construire des messages en plusieurs parties.To reduce the risk of creating malformed payloads, you should use a library to construct multipart messages.

Si vous recevez un code d’état 400 pour une charge utile incorrecte, consultez la mise en forme des sauts de ligne et des espaces, et vérifiez qu’il n’y ait aucun problème de codage.If you do receive a 400 status for a malformed payload, check the formatting of newlines and whitespaces, and check for encoding issues. Par exemple, essayez d’utiliser charset=utf-8 (exemple : Content-Type: text/html; charset=utf-8).For example, try using charset=utf-8 (example: Content-Type: text/html; charset=utf-8).

Consultez les sections relatives aux exigences et limitations concernant le code HTML d’entrée et aux limites de taille des requêtes POST.See requirements and limitations for input HTML and size limits for POST requests.

Informations de la requête et de la réponse pour les requêtes de pages POSTRequest and response information for POST pages requests

Données des requêtesRequest data DescriptionDescription
ProtocoleProtocol Toutes les demandes utilisent le protocole HTTPS SSL/TLS.All requests use the SSL/TLS HTTPS protocol.
En-tête AuthorizationAuthorization header

Bearer {token}, où {token} est un jeton d’accès OAuth 2.0 valide pour votre application inscrite.Bearer {token}, where {token} is a valid OAuth 2.0 access token for your registered app.

En cas de jeton manquant ou non valide, la requête échoue et le code d’état 401 s’affiche.If missing or invalid, the request fails with a 401 status code. Consultez l’article relatif à l’authentification et aux autorisations.See Authentication and permissions.

En-tête Content-TypeContent-Type header

text/html ou application/xhtml+xml pour le contenu HTML, pour indiquer s’il est envoyé directement dans le corps du message ou dans la partie « Présentation » requise des requêtes en plusieurs parties.text/html or application/xhtml+xml for the HTML content, whether it's sent directly in the message body or in the required "Presentation" part of multipart requests.

Utilisez des requêtes en plusieurs parties quand vous envoyez des données binaires, et utilisez le type de contenu multipart/form-data; boundary=part-boundary, où {part-boundary} est une chaîne qui signale le début et la fin de chaque partie de données.Multipart requests are required when sending binary data, and use the multipart/form-data; boundary=part-boundary content type, where {part-boundary} is a string that signals the start and end of each data part.

En-tête AcceptAccept header application/json

Données de réponseResponse data DescriptionDescription
Code de succèsSuccess code Code d’état HTTP 201A 201 HTTP status code.
Corps de la réponseResponse body Représentation OData de la nouvelle page au format JSON.A OData representation of the new page in JSON format.
ErreursErrors 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.If the request fails, the API returns errors in the **@api.diagnostics** object in the response body.
En-tête LocationLocation header URL de ressource pour la nouvelle page.The resource URL for the new page.
En-tête X-CorrelationIdX-CorrelationId header GUID qui permet d’identifier la requête de manière unique.A GUID that uniquely identifies the request. 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.You can use this value along with the value of the Date header when working with Microsoft support to troubleshoot issues.

Construction de l’URL racine du service Microsoft GraphConstructing the Microsoft Graph service root URL

L’URL racine du service Microsoft Graph utilise le format suivant pour tous les appels à Microsoft Graph :The Microsoft Graph service root URL uses the following format for all calls to 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.The version segment in the URL represents the version of Microsoft Graph that you want to use. Utilisez v1.0 pour le code de production stable.Use v1.0 for stable production code. Utilisez beta pour tester une fonctionnalité en cours de développement.Use beta to try out a feature that's in development. 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.Features and functionality in beta may change, so you shouldn't use it in your production code.

Utilisez me pour le contenu OneNote auquel l’utilisateur actuel peut accéder (contenu propriétaire et partagé).Use me for OneNote content that the current user can access (owned and shared). Utilisez users/{id} pour le contenu OneNote que l’utilisateur spécifié (dans l’URL) a partagé avec l’utilisateur actuel.Use users/{id} for OneNote content that the specified user (in the URL) has shared with the current user. Utilisez Microsoft Graph pour obtenir les identifiants utilisateur.Use Microsoft Graph to get user IDs.

PermissionsPermissions

Pour créer des pages OneNote, demandez les autorisations appropriées.To create OneNote pages, you'll need to request appropriate permissions. Choisissez le niveau d’autorisation le plus faible requis par votre application pour faire son travail.Choose the lowest level of permissions that your app needs to do its work.

Choisissez parmi les autorisations suivantes :Choose from:

  • Notes.CreateNotes.Create
  • Notes.ReadWriteNotes.ReadWrite
  • Notes.ReadWrite.AllNotes.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.For more information about permission scopes and how they work, see Microsoft Graph permissions reference.

Voir aussiSee also