Table of contents
TOC
Réduire la table des matières
Développer la table des matières
Dernière mise à jour: 25/07/2018

Créeez des pages OneNote

S’applique à : blocs-notes consommateur sur OneDrive | Blocs-notes d’entreprise sur Office 365

Quand vous créez une page OneNote, vous envoyez une requête POST au point de terminaison pages : Par exemple :

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

Envoyez le code HTML qui définit la page dans le corps du message. Si la demande aboutit, OneNote API renvoie un code d’état HTTP 201.

Pour en savoir plus sur les demandes POST que vous pouvez envoyer pour créer des sections, des groupes de sections et des blocs-notes, consultez notre référence REST interactive.

Construire l’URI de la requête

Pour construire l’URI de demande, commencez par l’URL racine du service :

Blocs-notes sur OneDrive
https://www.onenote.com/api/v1.0/me/notes/

Blocs-notes sur OneDrive Entreprise
https://www.onenote.com/api/v1.0/me/notes/
https://www.onenote.com/api/v1.0/users/{id}/notes/

Blocs-notes de site SharePoint
https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/

Blocs-notes de groupe unifiés
https://www.onenote.com/api/v1.0/myOrganization/groups/{id}/notes/


Puis ajoutez le point de terminaison pages :

Créer une page dans n’importe quelle section (spécifiée par ID)

../sections/{id}/pages

Si vous créez des pages dans le bloc-notes personnel de l’utilisateur dans OneDrive ou OneDrive Entreprise, l’API OneNote fournit également des points de terminaison que vous pouvez utiliser pour créer des pages dans le bloc-notes par défaut :

Créer une page dans la section par défaut du bloc-notes par défaut

../me/notes/pages

Créer une page dans une section (spécifiée par son nom) dans le bloc-notes par défaut (voir les règles)

../me/notes/pages?sectionName=Some%20section%20name


Votre URI complet de demande ressemblera à l’un de ceux-ci :

https://www.onenote.com/api/v1.0/me/notes/sections/{id}/pages?sectionName=Homework

https://www.onenote.com/api/v1.0/myorganization/sitecollections/{id}/sites/{id}/notes/sections/{id}/pages

https://www.onenote.com/api/v1.0/myorganization/groups/{id}/notes/sections/{id}/pages

En savoir plus sur l’URL racine du service.

Utilisation du paramètre d’URL sectionName

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 :

  • Seules les sections de niveau supérieur peuvent être référencées (pas les sections dans les groupes de sections).

  • Si une section avec le nom spécifié n’existe pas dans le bloc-notes par défaut, l’API la crée. Ces caractères ne sont pas autorisés pour les noms de section : ? * \ /: < > | & # "% ~

  • 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. Ainsi, « Ma Nouvelle Section » sera affichée tel quel, alors que « ma nouvelle section » devra correspondre dans les requêtes POST suivantes.

  • Les noms de section doivent être encodés au format URL. Par exemple, les espaces doivent être encodés sous la forme %20.

  • Le paramètre sectionName est uniquement valide avec l’itinéraire ../notes/pages (et non, ../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. Les utilisateurs peuvent renommer les sections. Toutefois, l’API crée une section avec le nom de section spécifié. Notez que les liens renvoyés par l’API pour les pages d'une section renommée renverront toujours vers les anciennes pages.

Construire le corps du message

Le code HTML qui définit le contenu de la page est appelé Code HTML d’entrée. Le code HTML d’entrée prend en charge un sous-ensemble de code HTML et CSS standard, ainsi que des attributs personnalisés. (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.)

Envoyez le code HTML d’entrée dans le corps du message de la requête POST. 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.

L’exemple suivant envoie le code HTML d’entrée directement dans le corps du message.

POST https://www.onenote.com/api/v1.0/me/notes/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="http://..." alt="an image on the page" width="500" />
  </body>
</html>

Si vous envoyez des données binaires, utilisez une requête en plusieurs parties.

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. Nous vous recommandons d’utiliser une bibliothèque pour construire des messages en plusieurs parties. Cela réduit le risque de créer des charges utiles malformées.

Exigences et limitations pour l’HTML d’entrée dans les demandes POST pages

Lorsque vous envoyez l’HTML d’entrée tenez compte de ces exigences et limitations générales :

  • Le code HTML d’entrée doit être du XHTML bien formé et encodé au format UTF-8. Toutes les balises de début du conteneur doivent avoir des balises de fermeture correspondantes. Toutes les valeurs d’attribut doivent être entourées de guillemets doubles ou simples.

  • Le code JavaScript, les fichiers inclus et le code CSS sont supprimés.

  • Les formulaires HTML sont supprimés dans leur intégralité.

  • L’API OneNote prend en charge un sous-ensemble d’éléments HTML.

  • L‘API OneNote prend en charge un sous-ensemble d‘attributs HTML communs et un ensemble d’attributs personnalisés, tels que l‘attribut data-id utilisé pour la mise à jour des pages. Voir Entrée et sortie HTML pour les attributs pris en charge.

Code HTML et CSS pris en charge dans les pages OneNote

Tous les éléments, attributs et propriétés ne sont pas pris en charge (en HTML4, XHTML, CSS, HTML5, etc.). Au lieu de cela, l’API OneNote accepte un ensemble limité de HTML qui correspond mieux à la façon dont les utilisateurs utilisent OneNote. Pour plus d'informations, voir Balises HTML prises en charge pour les pages. Si une balise n’y figure pas, elle sera probablement ignorée.

La liste suivante montre les types d’éléments de base pris en charge par l’API OneNote :

<head> and <body>

<title> and <meta> qui définit le titre de la page et la date de création

<h1> through <h6> pour les en-têtes de section

<p> pour les paragraphes

<ul>, <ol>, and <li> pour les listes et les éléments de listes

<table>, <tr> and <td>, y compris les tables imbriquées

<pre> for preformatted text (preserves white space and line breaks)

<b> and <i> pour les styles de caractères gras et italique

L’API OneNote conserve le contenu sémantique et la structure de base du code HTML d’entrée lors de la création des pages, mais convertit le HTML d’entrée pour utiliser l’ensemble de propriétés CSS et d’éléments HTML pris en charge. Les fonctionnalités qui n’existent pas dans OneNote n’ont aucun élément à traduire, elles seront donc probablement non reconnues dans le code source HTML.

Exemple de demande. Cet exemple de demande en plusieurs parties crée une page contenant des images et un fichier incorporé. La partie obligatoire Présentation contient l’HTML d’entrée HTML qui définit la page. La partie imageBlock1 contient les données binaires d’image et fileBlock1 contient les données binaires du fichier. Les parties de données peuvent également contenir du code HTML, auquel cas l’API OneNote affiche le HTML en tant qu’image sur la page OneNote.

POST https://www.onenote.com/api/v1.0/me/notes/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>Une page avec des images affichées et un fichier joint</title>
    <meta name="created" content="2015-07-22T09:00:00-08:00" />
  </head>
  <body>
    <p>Voici une image d’une <i>source en ligne</i> :</p>
    <img src="http://..." alt="an image on the page" width="500" />
    <p>Voici une image téléchargée en tant que <b>données binaires</b> :</p>
    <img src="name:imageBlock1" alt="an image on the page" width="300" />
    <p>Voici une pièce jointe :</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-- ```

For more examples that show how to create pages that contain images and other files, see [Add images and files](..\howto\onenote-images-files.md), our [tutorials](../howto/onenote-tutorial.md), and our [samples](https://github.com/onenotedev). Also, learn how to [create absolute positioned elements](../howto/onenote-abs-pos.md), [use note tags](../howto/onenote-note-tags.md), and [extract data](../howto/onenote-extract-data.md) for business card captures and online recipe and product listings.

The OneNote API is strict about some formats, such as CRLF newlines in a multipart message body. To reduce the risk of creating malformed payloads, you should use a library to construct multipart messages. 
 If you do receive a 400 status for a malformed payload, check the formatting of newlines and whitespaces, and check for encoding issues. For example, try using `charset=utf-8` (example: `Content-Type: text/html; charset=utf-8`).

See [requirements and limitations for input HTML](#input-html-rules) and [size limits for POST requests](..\howto\onenote-images-files.md#size-limits).


<a name="request-response-info"></a>
## Informations de demande et réponse pour des demandes *POST pages*  | Données de demande | Description | |------|------| | Protocole | Toutes les demandes utilisent le protocole HTTPS SSL/TLS. | | En-tête d’autorisation | <p>`Bearer {token}`, où le *{jeton}* est un jeton d’accès OAuth 2.0 valide pour votre application inscrite.</p><p>S’il est absent ou non valide, la requête échoue avec un code d’état 401. Consultez [Authentification et autorisations](..\howto\onenote-auth.md).</p> |  
| En-tête Content-Type | <p>`text/html` ou `application/xhtml+xml` pour le contenu HTML, qu’il soit envoyé directement dans le corps du message ou dans la partie obligatoire « Présentation » des demandes en plusieurs parties.</p><p>Les demandes en plusieurs parties sont obligatoires lors de l’envoi de données binaires et utilisent 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.</p> |  
| Accepte l’en-tête `application/json` | | Données de réponse | Description | | ------ | ------ | | Code de réussite | Un code d’état HTTP 201. | | Corps de la réponse | Une représentation OData de la nouvelle page au format JSON. | | Erreurs | Si la demande échoue, l’API renvoie des erreurs dans l’objet **@api.diagnostics** dans l'objet du corps de la réponse. | | En-tête localisation | L’URL de la ressource pour la nouvelle page. | | En-tête X-CorrelationId | Un GUID qui identifie de manière unique la demande. Vous pouvez utiliser cette valeur avec la valeur de l’en-tête Date lorsque vous faites appel à l’assistance Microsoft pour résoudre un problème. |  


<a name="root-url"></a>
### Création des autorisations de l’URL racine du service OneNote [!INCLUDE [service root url section](../includes/onenote/service-root-section.md)]


<a name="permissions"></a>
##. Pour créer des pages OneNote, vous devez demander les autorisations appropriées. Choisissez le niveau d’autorisations le plus bas dont votre application a besoin pour faire son travail.

[!INCLUDE [Create perms](../includes/onenote/create-perms.md)]  Pour en savoir plus sur les étendues d’autorisation et leur fonctionnement, consultez la section relative aux [étendues d’autorisation dans OneNote](../howto/onenote-auth.md).

<a name="see-also"></a>
## Ressources additionnelles - [Ajouter des images et des fichiers](../howto/onenote-images-files.md)
- [Créer des éléments positionnés en absolu](../howto/onenote-abs-pos.md) - [Extraire des données](../howto/onenote-extract-data.md)
- [Utiliser des balises de note](../howto/onenote-note-tags.md)
- [Le développement de OneNote](../howto/onenote-landing.md)
- [Centre de développement OneNote](http://dev.onenote.com/)
- [Blog du développeur OneNote](http://go.microsoft.com/fwlink/?LinkID=390183)
- [Questions de développement OneNote sur Stack Overflow](http://go.microsoft.com/fwlink/?LinkID=390182) - [Référentiels OneNote GitHub](http://go.microsoft.com/fwlink/?LinkID=390178)

© 2018 Microsoft