非同期クラス ノートブックの操作

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

世界中の学校や大学でクラス ノートブックを使用して、生産性の向上、関心度の向上、共同作業の促進に役立てています。 すべてのクラス、プロジェクト、学期、課題でもクラス ノートブックを活用できます。

ClassNotebooks エンドポイントを使用して、非同期の呼び出しで追加または削除の受講者と同様に、クラスのノートブックを作成するなど、クラスのノート パソコンの一般的なタスクを実行します。

注意

OneNote API には、クラス ノートブックに固有の操作のための classNotebooks エンドポイントが含まれています。

非同期 API

ClassNotebooks エンドポイントの非同期呼び出しをするためには、要求にヘッダーを送信 しますPrefer: respond-async

応答

応答データ 説明
成功コード 202 状態の HTTP 状態コード。
位置 ヘッダー 操作の状態についてポーリングする URL

操作エンドポイントをポーリングすると、操作の状態などの情報を格納している OperationModel オブジェクトが返されます。
X-CorrelationId ヘッダー 要求を一意に識別する GUID です。

Microsoft サポートと問題のトラブルシューティングを行う際に、この値を Date ヘッダーの値とともに使用できます。

操作モデル

操作モデル 説明
ID 操作の ID。
状態 ステータスは、次をすることができます: 完了、実行中、未開始、失敗。

完了の場合は、resourceLocation プロパティに新しいコピーのリソース エンドポイントが格納されます。

-実行中の場合、createdDateTime と lastActionDateTimeが要求が作成された日時と前回の実行時を表示します。

失敗の場合は、error プロパティと @api.diagnostics プロパティからエラー情報が得られます。
createdDateTime 要求が作成された日時を示します。
lastActionDateTime 要求が作成された日時と前回の実行時を示します。
resourceLocation リソース用のエンドポイント。
resourceId リソースの ID。

要求 URI の構築

要求 URI を構築するには、トピックの クラス ノートブックでの作業要求 URI の構築参照してください。

クラス ノートブックの作成

非同期呼び出しでは、クラスのノートブックを作成するには ClassNotebooks エンドポイントに ヘッダーを持つ POST 要求を送信します Prefer: respond-async

POST ../classNotebooks

メッセージの本文とクラスのノートブックの作成パラメーターを使用するJSON オブジェクトは、 クラスのノートブックを作成するを参照してください。

次の要求は、Math 101 という名前のクラス ノートブックを作成します。

要求

POST https://www.onenote.com/v1.0/me/notes/classNotebooks?sendemail=true
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async
{
    "name": "Math 101",
    "studentSections": [
        "Handouts",
        "Class Notes",
        "Homework",
        "Quizzes"
    ],
    "teachers": [
        {
            "id": "teacher1@contoso.com",
            "principalType": "Person"
        }
    ],
    "students": [
        {
            "id": "student1@contoso.com",
            "principalType": "Person"
        },
        {
            "id": "student2@contoso.com",
            "principalType": "Person" 
        },
        {
            "id": "student3@contoso.com",
            "principalType": "Person"
        },
        {
            "id": "student4@contoso.com",
            "principalType": "Person"
        }
    ],
    "hasTeacherOnlySectionGroup": true
}

応答

HTTP/1.1 202 Accepted

Location: https://www.onenote.com/api/v1.0/me/notes/operations/classnotebook-ee91aafb-5685-4357-9465-77d611ef064c

クラスの作成処理の状態を取得するため 場所 のエンドポイントをポーリングします。

要求

GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebook-ee91aafb-5685-4357-9465-77d611ef064c

応答

{
  "@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"classnotebook-ee91aafb-5685-4357-9465-77d611ef064c",
"status":"completed",
"createdDateTime":"2018-06-01T23:44:29.349Z",
"lastActionDateTime":"2018-06-01T23:44:29.349Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-cb6e0bf6-1185-4daa-80a1-ded42ca1708e",
"resourceId":"1-cb6e0bf6-1185-4daa-80a1-ded42ca1708e"
}

受講者と教師の追加

受講者と教師を追加して、クラス ノートブックへのアクセスを提供します。 受講者を追加すると、受講者用のセクションのグループも作成されます。 このセクション グループには受講者と教師だけがアクセス可能で、ノートブックに対して定義されている受講者用のセクションが含まれています。

受講者または教師を非同期呼び出しのクラスのノートブックに追加するには、ヘッダーを持つ適切なエンドポイントにPOST要求を送信します Prefer: respond-async

受講者の追加

POST ../classNotebooks/{notebook-id}/students

教師の追加

POST ../classNotebooks/{notebook-id}/teachers

メッセージの本文およびクラスのノートブックの作成パラメーターを使用する JSON オブジェクトは、 受講者または教師の追加を参照してください。

次の要求は、指定したクラスのノートブックに教師を追加します。

要求

POST https://www.onenote/api/v1.0/me/notes/classNotebooks/ 1-b68a21fd-cdb3-41f1-a566-0772872a8a0c//teachers 
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async

{
    "id": "teacher2@contoso.com",
    "principalType": "Person"
}

応答

HTTP/1.1 202 Accepted
Location: https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9

先生の追加操作のステータスを取得するため 場所 のエンドポイントをポーリングします。

要求

GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9

応答

{
  "@odata.context":"https://www.onenote/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"classnotebookmember-28d4f01e-32f1-4e82-866e-025b1f2ca2b9",
"status":"completed",
"createdDateTime":"2018-06-12T22:23:47.548Z",
"lastActionDateTime":"2018-06-12T22:23:47.548Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-b68a21fd-cdb3-41f1-a566-0772872a8a0c/teachers/teacher2@contoso.net",
"resourceId":"teacher2@contoso.net"
}

受講者と教師の削除

受講者と教師をクラス ノートブックから削除すると、ノートブックへのアクセスが取り消されますが、コンテンツは削除されません。 受講者または教師を非同期呼び出しのクラスのノートブックに追加するには、ヘッダーを持つ適切なエンドポイントにPOST要求を送信します Prefer: respond-async

受講者の削除

DELETE ../classNotebooks/{notebook-id}/students/{student-id}

教師の削除

DELETE ../classNotebooks/{notebook-id}/teachers/{teacher-id}

1 つの要求で削除できるのは生徒 1 人または教師 1 人です。

次の要求は、指定したクラス ノートブックから指定した受講者を削除します。

要求

DELETE https://www.onenote.com/api/v1.0/me /notes/classNotebooks/1-b68a21fd-cdb3-41f1-a566-0772872a8a0c/teachers/teacher2@contoso.net
Authorization: Bearer {token}
Accept: application/json
Prefer: respond-async

応答

HTTP/1.1 202 Accepted

Location: https://www.onenotecom/api/v1.0/me/notes/operations/classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a

先生の追加操作のステータスを取得するため 場所 のエンドポイントをポーリングします。

要求

GET https://www.onenote.com/api/v1.0/me/notes/operations/classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a

応答

{
  "@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"classnotebookmember-e364e1fe-11a1-4551-8dcc-a143a8c0d78a",
"status":"completed",
"createdDateTime":"2018-06-12T22:40:06.708Z",
"lastActionDateTime":"2018-06-12T22:40:06.708Z",
"resourceLocation":"https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-b68a21fd-cdb3-41f1-a566-0772872a8a0c/teachers/teacher2@contoso.net",
"resourceId":"teacher2@contoso.net"
}

ノートブックを転送します。

非同期呼び出しで別の先生に ある教師からノートブックを転送するには、 classNotebooks のエンドポイントに POST 要求を送信します。

POST ../classnotebooks/{notebook-id}/Microsoft.OneNote.Api.classnotebooktransfer

この API には、テナントの管理者特権が必要です。

メッセージの本文に転送するための JSON オブジェクト クラスのノートブックのパラメーターを送信します。

{
 "ClassNotebookTransfer" : {
   "sourceTeacher": {
          "principalType":"Person",
          "id":"alias@tenant"
  },
  "destinationTeacher" : {             
  "principalType":"Person",
          "id":"alias@tenant"
    },
   "destinationNotebookName": "notebook-name"
  }
}
パラメーター 説明
destinationNotebookName あて先のノートブックの名前。
destinationTeacher プリンシパル オブジェクト。
sourceTeacher プリンシパル オブジェクト。

ソースと宛先の先生は、次のパラメーターが含まれるプリンシパル オブジェクトで表されます。

パラメーター 説明
ID Office 365 のユーザー プリンシパル名。

ユーザーおよびグループに関する詳細については、 Azure AD グラフ API のドキュメントを参照してください。
principalType 人物

次の例では、数学 101 という名前のクラスのノートブックを転送します。

要求

POST https://www.onenote.com/api/v1.0/me/notes/classnotebooks/1-9a43afaa-7dc9-4405-b661-b735ebf722a0/Microsoft.OneNote.Api.classnotebooktransfer
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async
{
 "ClassNotebookTransfer" : {
   "sourceTeacher": {
          "principalType":"Person",
          "id":"teacher1@contososd.org"
  },
  "destinationTeacher" : {             
  "principalType":"Person",
          "id":"teacher2@contososd.org"
    },
   "destinationNotebookName": "Math 101"
  }
}

応答

HTTP/1.1 202 Accepted 
Location: https://www.onenote.com/api/v1.0/me/notes/operations/transfer-9a43afaa-7dc9-4405-b661-b735ebf722a0

転送ノートブックの状態を取得するため 場所 のエンドポイントをポーリングします。

要求

GET https://www.onenote.com/api/v1.0/me/notes/operations/transfer-9a43afaa-7dc9-4405-b661-b735ebf722a0

応答

{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"transfer9a43afaa-7dc9-4405-b661-b735ebf722a0",
"status":"completed",
"createdDateTime":"0001-01-01T00:00:00Z",
"lastActionDateTime":"0001-01-01T00:00:00Z",
"resourceId":"1-6e0cebcb-b589-4632-8b31-1ffe804652e0"
}

メンバーシップの更新

非同期呼び出しのクラスのノートブックのメンバーシップを更新するには、 classNotebooks エンドポイント ヘッダーを持つ POST 要求を送信します。 Prefer: respond-async

POST
../groups/{groupId}/classnotebooks/Microsoft.OneNote.Api.UpdateMembership

メッセージの本文とアクション パラメーターには、更新プログラムのメンバーシップの JSON オブジェクトでは、 メンバーシップを更新 クラスのノートブックでの作業を参照してください。

次の例では、統一されたグループの既定のクラスのノートブックを同期します。

要求

POST https://www.onenote.com/api/v1.0/myOrganization/groups/1d13f814-83e5-4c11-8294-53bf40defd91/notes/classnotebooks/classnotebooks/Microsoft.OneNote.Api.UpdateMembership
Authorization: Bearer {token}
Content-Type: application/json
Accept: application/json
Prefer: respond-async

応答

HTTP/1.1 202 Accepted 
Location: https://www.onenote.com/api/v1.0/me/notes/operations/updatemembership-9a43afaa-7dc9-4405-b661-b735ebf722a0

クラスのノートブックの更新プログラムのメンバーシップの状態を取得するため 場所 のエンドポイントをポーリングします。

要求

GET https://www.onenote.com/api/v1.0/me/notes/operations/updatemembership-9a43afaa-7dc9-4405-b661-b735ebf722a0

応答

{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/operations/$entity",
"id":"updateMembership-9a43afaa-7dc9-4405-b661-b735ebf722a0",
"status":"completed",
"createdDateTime":"0001-01-01T00:00:00Z",
"lastActionDateTime":"0001-01-01T00:00:00Z",
"resourceId":"1-6e0cebcb-b589-4632-8b31-1ffe804652e0"
}

関連項目