Table of contents
TOC
目次を折りたたむ
目次を展開する
最終更新日: 2017/11/10

OneNote ページの作成

適用対象: OneDrive のコンシューマー ノートブック | Office 365 のエンタープライズ ノートブック

OneNote ページを作成する場合は、POST 要求を pages エンドポイントに送信します。 たとえば次のようにします。

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

メッセージ本文でページ定義する HTML を送信します。要求が成功すると、OneNote API は 201 HTTP 状態コードを返します。

セクション、セクション グループ、ノートブックを作成するために送信できる POST 要求について調べるために、対話型 REST リファレンスをご覧ください。

要求 URI の構築

要求 URI を構築するには、サービス ルート URL から開始します。

OneDrive のノートブック
https://www.onenote.com/api/v1.0/me/notes/

OneDrive for Business のノートブック
https://www.onenote.com/api/v1.0/me/notes/
https://www.onenote.com/api/v1.0/users/{id}/notes/

SharePoint サイトのノートブック
https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/

統合グループのノートブック
https://www.onenote.com/api/v1.0/myOrganization/groups/{id}/notes/


次に、pages エンドポイントを追加します。

任意のセクション (ID で指定) にページを作成する

../sections/{id}/pages

OneDrive または OneDrive for Business のユーザーの個人用ノートブックにページを作成する場合は、OneNote API が提供する、既定のノートブックにページを作成するためのエンドポイントを使用することもできます。

既定のノートブックの既定のセクションにページを作成する

../me/notes/pages

既定のノートブックのセクション (名前で指定) にページを作成する (ルールをご覧ください)

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


完全な要求 URI は、次に示す例のいずれかのようになります。

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

サービス ルート URL について詳しく説明します。

sectionName URL パラメーターの使用

次に示すルールは、sectionName パラメーターを使用して、既定のノートブックの指名したセクションにページを作成するときに適用されます。

  • 最上位のセクションのみを参照できます (セクション グループ内のセクションは参照できません)。

  • 指定した名前のセクションが既定のノートブックに存在しない場合、そのセクションは API によって作成されます。 セクション名に使用できない文字は、「? * \ / : < > | & # " % ~」です。

  • セクション名の照合では、大文字と小文字が区別されませんが、セクションが作成されるときには大文字と小文字が維持されます。そのため、"My New Section" はこのとおりに表示されますが、これ以降の POST では "my new section" も一致します。

  • セクション名は URL エンコードを適用する必要があります。 たとえば、スペースは %20 としてエンコードする必要があります。

  • sectionName パラメーターは、../notes/pages のルートでのみ有効になります (../notes/sections/{id}/pages では無効です)。

セクションは存在しない場合に作成されるため、この呼び出しはアプリで作成するすべてのページに使用しても問題ありません。セクションの名前はユーザーが変更する可能性もありますが、API は指定されたセクション名で新しいセクションを作成します。API から返された、名前を変更したセクションを含むページへのリンクは、引き続き該当する古いページに到達する点に注意してください。

メッセージ本文の構築

ページのコンテンツを定義する HTML は、入力 HTML と呼ばれます。 入力 HTML は、標準の HTML および CSS のサブセットと、追加のカスタム 属性をサポートしています (data-iddata-render-src のようなカスタム属性は入力および出力 HTML で記述されます)。

入力 HTML は、POST 要求のメッセージ本文で送信します。 入力 HTML は、application/xhtml+xml または text/html コンテンツ タイプを使用して、メッセージ本文に直接含めて送信することも、マルチパート要求の "Presentation" 部分に含めて送信することもできます。

次に示す例では、入力 HTML をメッセージ本文に直接含めて送信しています。

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>

バイナリ データを送信する場合は、マルチパート要求を使用する必要があります。

プログラミングを簡単にして、アプリでの一貫性を保つために、すべてのページの作成にマルチパート要求を使用できます。マルチパート メッセージを作成するライブラリの使用をお勧めします。これにより、無効な形式のペイロードを作成してしまう危険性が少なくなります。

POST pages 要求の入力 HTML に対する要件と制限事項

入力 HTML を送信するときには、次に示す一般的な要件と制限事項に注意してください。

  • 入力 HTML は、UTF-8 でエンコードされた整形式の XHTML である必要があります。 すべてのコンテナーの開始タグは、終了タグと一致する必要があります。 すべての属性値は、二重引用符または一重引用符で囲む必要があります。

  • JavaScript コード (ファイルを含む) および CSS は削除されます。

  • HTML フォームは全体が削除されます。

  • OneNote API は HTML 要素のサブセットをサポートします。

  • OneNote API は一般的な HTML 属性のサブセットとカスタム属性のセットをサポートします (ページの更新に使用される data-id 属性など)。 サポートされる属性については、「入出力 HTML」を参照してください。

OneNote ページでサポートされる HTML と CSS

すべての要素、属性、およびプロパティがサポートされるわけではありません (HTML4、XHTML、CSS、HTML5 などについて)。 OneNote API は、ユーザーの OneNote の使用方法に適した、限定的な HTML のセットを受け入れます。 詳細については、「ページでサポートされる HTML タグ」を参照してください。 この参照先に示されていないタグは、無視されることがあります。

次に、OneNote API でサポートされる基本的な要素の種類の一覧を示します。

<head> and <body>

<title> and <meta> (ページのタイトルと作成日を設定する)

<h1> through <h6> (セクションの見出し用)

<p> (段落用)

<ul>, <ol>, and <li> (リストおよびリスト アイテム用)

<table>, <tr> and <td> (入れ子になったテーブルを含む)

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

<b> and <i> (太字および斜体文字スタイル用)

OneNote API は、ページの作成時に入力 HTML の意味内容と基本的構造を維持しますが、サポートされている HTML および CSS のセットを使用するように入力 HTML を変換します。 OneNote に存在しない機能は変換されないため、ソース HTML では認識されない可能性があります。

要求の例: ここに示すマルチパート要求の例では、画像と埋め込みファイルが含まれたページを作成します。 必須の Presentation パーツには、ページを定義する入力 HTML が含まれています。 imageBlock1 パーツにはバイナリ イメージ データが含まれ、fileBlock1 にはバイナリ ファイル データが含まれています。 データ パーツには、OneNote API が OneNote ページに画像として HTML をレンダリングする場合の HTML を含めることもできます。

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>レンダリングされた画像と添付ファイルで構成されたページ</title>
    <meta name="created" content="2015-07-22T09:00:00-08:00" />
  </head>
  <body>
    <p><i>オンライン ソース</i>からの画像:</p>
    <img src="http://..." alt="an image on the page" width="500" />
    <p><b>バイナリ データ</b>としてアップロードされた画像:</p>
    <img src="name:imageBlock1" alt="an image on the page" width="300" />
    <p>添付ファイル:</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>
## *投稿ページ* 要求の要求情報と応答情報  | 要求データ | 説明 | |------|------| | プロトコル | すべての要求は SSL/TLS HTTPS プロトコルを使用します。 | | Authorization ヘッダー | <p>`Bearer {token}`。*{token}* は、登録済みアプリの有効な OAuth 2.0 アクセス トークンになります。</p><p>これがないか、無効の場合、要求は失敗し、401 ステータス コードが表示されます。 「[認証とアクセス許可](..\howto\onenote-auth.md)」を参照してください。</p> |  
| Content-Type ヘッダー | <p>`text/html` または `application/xhtml+xml` (HTML コンテンツのため)。メッセージ本文で直接送信するか、マルチパート要求の必須の "Presentation" パーツで送信します。</p><p>マルチパート要求はバイナリ データを送信するときに必須であり、コンテンツ タイプとして `multipart/form-data; boundary=part-boundary` を使用します。*{part-boundary}* は、各データ パートの開始と終了を伝える文字列です。</p> |  
| Accept ヘッダー | `application/json` |  | 応答データ | 説明 | |------|------| | 成功コード | 201 HTTP 状態コード。 | | 応答本文 | JSON 形式での新しいページの OData 表現。 | | エラー | 要求が失敗すると、API は応答本文の **@api.diagnostics** オブジェクトでエラーを返します。 | | Location ヘッダー | 新しいページのリソース URL。 | | X-CorrelationId ヘッダー | 要求を一意に識別する GUID。 Microsoft サポートと問題のトラブルシューティングを行う際に、この値を Date ヘッダーの値とともに使用できます。 |  


<a name="root-url"></a>
### OneNote サービス ルート URL の構築  [!INCLUDE [service root url section](../includes/onenote/service-root-section.md)]


<a name="permissions"></a>
## アクセス許可:  OneNote ページを作成するためには、適切なアクセス許可を要求する必要があります。 アプリの動作に必要な最低限のアクセス許可を選択してください。

[!INCLUDE [Create perms](../includes/onenote/create-perms.md)]  アクセス許可のスコープと動作のしくみの詳細については、「[OneNote のアクセス許可のスコープ](../howto/onenote-auth.md)」を参照してください。

<a name="see-also"></a>
## その他のリソース  - [画像とファイルを追加する](../howto/onenote-images-files.md)
- [絶対配置要素を作成する](../howto/onenote-abs-pos.md) - [データを抽出する](../howto/onenote-extract-data.md)
- [ノート シールを使用する](../howto/onenote-note-tags.md)
- [OneNote の開発](../howto/onenote-landing.md)
- [OneNote デベロッパー センター](http://dev.onenote.com/)
- [OneNote の開発者ブログ](http://go.microsoft.com/fwlink/?LinkID=390183)
- [Stack Overflow に掲載された OneNote の開発に関する質問](http://go.microsoft.com/fwlink/?LinkID=390182) - [OneNote の GitHub のリポジトリ](http://go.microsoft.com/fwlink/?LinkID=390178)

© 2018 Microsoft