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

ノートブック、セクション、ページのコピー

適用対象: Office 365 のエンタープライズ ノートブックのみ

OneNote ノートブック、セクション、またはページをコピーする場合は、それぞれに対応する copy アクション エンドポイントに POST 要求を送信します。 次に例を示します。

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

メッセージの本文で JSON のコピー オブジェクトを送信します。 要求が成功すると、OneNote API は 202 HTTP 状態コードと Operation-Location ヘッダーを返します。 その後、結果について、操作エンドポイントをポーリングできます。

現時点では、コピー機能は Office 365 の個人、サイト、グループのノートブックでサポートされていますが、OneDrive のコンシューマー ノートブックではサポートされていません。

要求 URI の構築

要求 URI を構築するには、プラットフォームのサービス ルート URL から開始します。

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/


その後に、それぞれに対応する copy アクション エンドポイントを追加します。

ページをセクションにコピーする

../pages/{id}/copyToSection

セクションをノートブックにコピーする

../sections/{id}/copyToNotebook

セクションをセクション グループにコピーする

../sections/{id}/copyToSectionGroup

ノートブックをコピーする

../notebooks/{id}/copyNotebook

ノートブックは、コピー先ドキュメント ライブラリの [ノートブック] フォルダーにコピーされます。[ノートブック] フォルダーが存在しない場合は、そのフォルダーが作成されます。


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

https://www.onenote.com/api/v1.0/me/notes/sections/{id}/copyToNotebook

https://www.onenote.com/api/v1.0/users/{id}/notes/sections/{id}/copytosectiongroup

https://www.onenote.com/api/v1.0/myOrganization/siteCollections/{id}/sites/{id}/notes/pages/{id}/copyToSection

https://www.onenote.com/api/v1.0/groups/{id}/notes/notebooks/{id}/copyNotebook

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

メッセージ本文の構築

メッセージ本文では、操作に必要なパラメーターを格納する JSON オブジェクトを送信します。パラメーターが必要ない場合は、からの本文を送信してもかまいません。

パラメーター説明
idコピー先のノートブックまたはセクション グループの ID (セクションの場合)、またはコピー先のセクションの ID (ページの場合)。

copyToNotebookcopyToSectionGroupcopyToSection でのみ使用します。
siteCollectionIdアイテムのコピー先サイトを格納する SharePoint サイト コレクションの ID。

SharePoint サイトにコピーする場合にのみ、siteId と共に使用します。
siteIdアイテムのコピー先 SharePoint サイトの ID。

SharePoint サイトにコピーする場合にのみ、siteCollectionId と共に使用します。
groupIdアイテムのコピー先グループの ID。

Office 365 グループにコピーする場合にのみ使用します。
renameAsコピーの名前。

copyNotebookcopyToNotebook、および copyToSectionGroup でのみ使用します。 既定値は、既存のアイテムの名前になります。

ノートブック、セクション グループ、およびセクションの ID を取得する方法と、サイト コレクションおよびサイトの ID を取得する方法について説明します。 グループ ID の取得方法の詳細については、「Azure AD Graph API のドキュメント」を参照してください。

コピー操作のフロー例

まず、コピーするアイテムに対する copy アクションに POST 要求を送信します。 コピー元とコピー先が同じテナント内にあれば、ユーザーがアクセスできる (所有しているか、共有している) ノートブックからコピーできます。

次に示す例では、SharePoint チーム サイトに個人用のノートブックをコピーします。 この要求には renameAs パラメーターが含まれていないため、新しいノートブックは既存の名前を使用することになります。

POST https://www.onenote.com/api/v1.0/me/notes/notebooks/1-db247796-f4d1-4972-a869-942919bf9923/copyNotebook
Authorization: Bearer {token}
Content-Type: application/json 

{
  "siteCollectionId":"0f6dbd5d-d179-49c6-aabd-15830ea90ca8",
  "siteId":"3ba679cf-4470-466e-bc20-053bdfec75bf"
}

コピー操作では、コピー元ノートブックのアクセス許可が優先されるため、ノートブックをコピーするには、認証されたユーザーがコピー元ノートブックにアクセスできる必要があります。ただし、コピー元のアクセス許可がコピーに維持されることはありません。コピーには、そのコピーをユーザーが作成したものとしてのアクセス許可が付与されます。

呼び出しが成功すると、OneNote API は 202 状態コードと Operation-Location ヘッダーを返します。 次に、応答からの抜粋を示します。

HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/notebooks/1-db247796-f4d1-4972-a869-942919bf9923
X-CorrelationId: 8a211d7c-220b-413d-8022-9a946499fcfb
Operation-Location: https://www.onenote.com/api/beta/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/notes/operations/copy-8a211d7c-220b-413d-8022-9a946499fcfb
...

その後で、Operation-Location エンドポイントをポーリングして、コピー操作の状態を取得します。

GET https://www.onenote.com/api/beta/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/notes/operations/copy-8a211d7c-220b-413d-8022-9a946499fcfb
Authorization: Bearer {token}
Accept: application/json

OneNote API は、現在の状態を示す OperationModel オブジェクトを返します。 次に示す応答例は、状態が完了 (completed) のときに返されます。

{
  "@odata.context":"https://www.onenote.com/api/beta/$metadata#myOrganization/siteCollections('0f6dbd5d-d179-49c6-aabd-15830ea90ca8')/sites('0f6dbd5d-d179-49c6-aabd-15830ea90ca8')/notes/operations/$entity",
  "id":"copy-1c5be75c-e7db-4219-8145-a2d6c3f171a33ec9f3da-2b24-4fb1-a776-fe8c8cd1410f",
  "status":"completed",
  "createdDateTime":"2015-09-16T17:32:07.048Z",
  "lastActionDateTime":"2015-09-16T17:32:17.7777639Z",
  "resourceLocation":"https://www.onenote.com/api/v1.0/myOrganization/siteCollections/0f6dbd5d-d179-49c6-aabd-15830ea90ca8/sites/3ba679cf-4470-466e-bc20-053bdfec75bf/notes/notebooks/1-bde29eeb-66e2-4fed-8d48-51cd1bf32511",
  "resourceId":null,"
  "error":null
}

状態は、完了 (completed)、実行中 (running)、または失敗 (failed) のいずれかになります。

  • completed の場合は、resourceLocation プロパティに新しいコピーのリソース エンドポイントが格納されます。
  • running の場合は、percentComplete プロパティで完了までの見積パーセンテージが示されます。
  • failed の場合は、error プロパティと @api.diagnostics プロパティからエラー情報が得られます。

操作が完了または失敗するまで、操作エンドポイントをポーリングできます。

要求および応答に関する情報

要求データ説明
プロトコルすべての要求は SSL/TLS HTTPS プロトコルを使用します。
承認ヘッダーBearer {token}{token} は、登録済みアプリの有効な OAuth 2.0 アクセス トークンになります。

これがないか、無効の場合、要求は失敗し、401 ステータス コードが表示されます。 「認証とアクセス許可」を参照してください。
Content-Type ヘッダーapplication/json
Accept ヘッダーapplication/json
応答データ説明
成功コード202 状態の HTTP 状態コード。
Operation-Location ヘッダー操作の状態についてポーリングする URL。

操作エンドポイントをポーリングすると、操作の状態などの情報を格納している OperationModel オブジェクトが返されます。
X-CorrelationId ヘッダー要求を一意に識別する GUID。Microsoft サポートと問題のトラブルシューティングを行う際に、この値を Date ヘッダーの値とともに使用できます。

OneNote サービスのルート URL の構築

OneNote サービスのルート URL は、OneNote API へのすべての呼び出しで次の形式を使用します。

https://www.onenote.com/api/{version}/{location}/notes/


URL の version セグメントは、使用する OneNote API のバージョンを示しています。

  • 安定した運用コードには v1.0 を使用します。
  • 開発中の機能を試すには beta を使用します。 ベータ版の機能は変更される可能性があるため、運用コードでは使用しないでください。


URL の location セグメントは、アクセスするノートブックの場所を示しています。

OneDrive for Business のノートブック
現在のユーザーが所有する OneNote コンテンツには me を使用します。

指定されたユーザー (URL 内) が現在のユーザーと共有している OneNote コンテンツには users/{id} を使用します。 ユーザー ID を取得するには Azure AD Graph API を使用します。

SharePoint サイトのノートブック
チーム サイトとその他の SharePoint サイトには、ドキュメント ライブラリ内の OneNote ノートブックを含めることができます。

現在のユーザーがサインインしているテナント内のサイトの OneNote コンテンツには myOrganization/siteCollections/{id}/sites/{id} を使用します。 現在のテナントのみがサポートされており、myOrganization キーワードを使ってアクセスします。 サイト ID を取得する方法を説明します。

Office 365 グループ ノートブック
Office 365 グループは Office 365 Connected Experience の一部です。 グループ メンバーは、ノートブック、ファイル、メールを共有できます。

現在のユーザーがメンバーになっている指定のグループの OneNote コンテンツには myOrganization/groups/{id} を使用します。 サポートされるグループの種類は、(unified groupType を返す) Office 365 グループのみです。 グループ ID を取得するには Azure AD Graph API を使用します。


サイト コレクションとサイト ID を取得するには FromUrl メソッドを使用します
指定されたサイトの絶対 URL のサイト コレクションとサイト ID を取得するには FromUrl メソッドを使用できます。 必要な場合にのみこの呼び出しを行ってから、今後使用するために値を保存する必要があります。

サイト URL の形式は、例えば https://domain.sharepoint.com/site-ahttps://domain.com/sites/site-aなど、構成に依存します。

要求の例:

GET https://www.onenote.com/api/v1.0/myOrganization/siteCollections/FromUrl(url='{full-path-to-SharePoint-site}')
Authorization: Bearer {token}
Accept: application/json

応答の例:

{
  "@odata.context":"https://www.onenote.com/api/v1.0/$metadata#Microsoft.OneNote.Api.SiteMetadata",
  "siteCollectionId":"09d1a587-a84b-4264-3d15-669429be8cc5",
  "siteId":"d9e4d5c8-683f-4363-89ae-18c4e3da91e9"
}

FromUrl を使って、SharePoint サイトのノートブックを操作するための要件:

  • OneNote のノートブック、セクション グループ、セクション、ページを作成できるのは、既定のドキュメント ライブラリのサイト上のみです (一部のサイト テンプレートは、既定のドキュメント ライブラリを作成しません)。ただし、GET 要求は、サイト上のすべてのドキュメント ライブラリから OneNote コンテンツを返します。
  • OneNote サービス ルート URL は変更できません。つまり、SharePoint REST API サイト パスを使用して、そこに notes エンドポイントを追加することはできません。
  • 呼び出し元であるユーザーは、サイトのメンバーである必要があります。
  • FromUrl は、インデックス付けされたサイトでのみ機能します。 新しいサイトにインデックスを付けるには、数時間かかることがあります。

アクセス許可

OneNote のノートブック、セクション、およびページをコピーする場合は、適切なアクセス許可を要求する必要があります。アプリの動作に必要な最低限のアクセス許可を選択してください。

プラットフォームアクセス許可の適用範囲
コンシューマーoffice.onenote_create, office.onenote_update_by_app, office.onenote_update
エンタープライズNotes.Create, Notes.ReadWrite.CreatedByApp, Notes.ReadWrite, Notes.ReadWrite.All

アクセス許可のスコープと動作のしくみの詳細については、「OneNote のアクセス許可のスコープ」を参照してください。

その他のリソース

© 2018 Microsoft