Arbeiten Sie mit asynchronen Klassennotizbüchern

Gilt für: Unternehmensnotizbücher auf Office 365

Schulen, Hochschulen und Universitäten weltweit nutzen OneNote-Klassennotizbücher, um die Produktivität, das Engagement und die Zusammenarbeit zu fördern. Sie können Klassennotizbücher für jeden Kurs, jedes Projekt, jeden Begriff und jede Zuordnung verwenden.

Der Endpunkt ClassNotebooks wird verwendet, um allgemeine Aufgaben für Klassennotizbücher auszuführen, z. B. das Erstellen von Klassennotizbüchern sowie das Hinzufügen oder Entfernen von Schülern in asynchronen Aufrufen.

Hinweis

Die OneNote-API stellt den Endpunkt classNotebooksfür Operationen zur Verfügung, die speziell für Klassennotizbücher gedacht sind.

Asynchrone API

Wenn asynchrone Aufrufe an den Endpunkt ClassNotebooks tätigen möchten, senden Sie eine Anforderung mit einer Kopfzeile Prefer: respond-async.

Antwort

Antwortdaten Beschreibung
Erfolgscode Ein 202-Status-HTTP-Statuscode.
Kopfzeile Standort Die URL zum Abrufen des Status der Operation.

Das Abfragen des Operationsendpunkts liefert ein OperationModel-Objekt, das den Status der Operation und andere Informationen enthält.
X-CorrelationId-Kopfzeile Ein globaler Bezeichner (GUID), über den die Anforderung eindeutig identifiziert wird.

Sie können diesen Wert zusammen mit dem Wert der Datum-Kopfzeile verwenden, um zusammen mit dem Microsoft Support Probleme zu behandeln.

Vorgang-Modell

Vorgang-Modell Beschreibung
ID Die ID des Vorgangs.
Status Der Status kann Folgendes sein: abgeschlossen, wird ausgeführt, nicht gestartet oder ist fehlgeschlagen.

- Wenn abgeschlossen, enthält die Eigenschaft resourceLocation den Ressourcenendpunkt für das neue classNotebook.

- Bei der Ausführung werden createdDateTime und lastActionDateTime angezeigt, wann die Anforderung erstellt und zuletzt ausgeführt wurde.

- Wenn fehlgeschlagen, bieten die Fehler- und @ api.diagnostics-Eigenschaften Fehlerinformationen.
createdDateTime Wird angezeigt, wenn die Anforderung erstellt wurde.
lastActionDateTime Wird angezeigt, wenn die Anforderung erstellt und zuletzt ausgeführt wurde.
resourceLocation Der Endpunkt für die Ressource.
resourceId Die ID der Ressource.

Erstellen der Anforderungs-URI

Informationen zum Erstellen der Anforderungs-URI finden Sie unter Erstellen der Anforderungs-URI im Thema Arbeiten mit Klassennotizbüchern..

Klassennotizbüchher erstellen

Um ein Klassen-Notizbuch in einem asynchronen Aufruf zu erstellen, senden Sie eine POST-Anforderung an den Endpunkt ClassNotebooks mit der Kopfzeile Prefer: respond-async.

POST ../classNotebooks

Informationen zum Nachrichtentext und zum JSON-Objekt mit den Parametern für die Erstellung von Klassennotizen finden Sie unterErstellen von Klassennotizbüchern.

Beispiel

Die folgende Anfrage erzeugt ein Klassennotizbuch mit dem Namen Math 101.

Anforderung

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
}

Antwort

HTTP/1.1 202 Accepted

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

Abfragen des Vorgangs Location Endpunkt, um den Status des CreateClass Vorgangs zu erhalten.

Anforderung

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

Antwort

{
  "@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"
}

Kursteilnehmer und Lehrer hinzufügen

Durch Hinzufügen von Schülern und Lehrern erhalten sie Zugriff auf das Klassennotizbuch. Durch Hinzufügen eines Schülers wird auch eine Schülerabschnittsgruppe erstellt. Diese Abschnittsgruppe ist nur für den Schüler und den Lehrer zugänglich und enthält die für das Notizbuch definierten Abschnitte.

Um einem Klassennotizbuch in einem asynchronen Aufruf einen Schüler oder Lehrer hinzuzufügen, senden Sie eine POST-Anforderung mit einer Kopfzeile an den entsprechenden Endpunkt. Prefer: respond-async.

Schüler hinzufügen

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

Einen Lehrer hinzufügen

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

Informationen zum Nachrichtentext und zum JSON-Objekt mit den Parametern für die Erstellung von Klassennotizen finden Sie unterHinzufügen von Schülern oder Lehrern.

Beispiel

Die folgende Anfrage fügt einen Lehrer zum angegebenen Klassennotizbuch hinzu.

Anforderung

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"
}

Antwort

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

Fragen Sie den Vorgang Location Endpunkt ab, wenn Sie den Status des Vorgangs 'Lehrer hinzufügen' abfragen möchten.

Anforderung

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

Antwort

{
  "@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"
}

Schüler oder Lehrer entfernen

Das Entfernen von Schülern und Lehrern aus einem Klassennotizbuch entzieht ihnen den Zugriff auf das Notizbuch, löscht aber keine Inhalte. Um einen Schüler oder Lehrer aus einem Klassennotizbuch in einem asynchronen Aufruf zu entfernen, senden Sie eine DELETE-Anforderung an den entsprechenden Endpunkt mit der Kopfzeile.Prefer: respond-async.

Entfernen eines Schülers

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

Entfernen eines Lehrers

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

Sie können einen Schüler oder einen Lehrer pro Anfrage entfernen.

Beispiel

Die folgende Anfrage entfernt den angegebenen Schüler aus dem angegebenen Klassennotizbuch.

Anforderung

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

Antwort

HTTP/1.1 202 Accepted

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

Fragen Sie den Vorgang Location Endpunkt ab, wenn Sie den Status des Vorgangs 'Lehrer löschen' abfragen möchten.

Anforderung

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

Antwort

{
  "@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"
}

Übertragen von Notizbuch

Um ein Notizbuch von einem Lehrer zu einem anderen Lehrer in einem asynchronen Anruf zu übertragen, senden Sie eine POST-Anforderung an den Endpunkt ClassNotebooks .

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

Diese API erfordert Administratorrechte für Mandanten.

Senden Sie im Nachrichtentext das JSON-Objekt mit den Transferklassen-Notizbuchparametern.

{
 "ClassNotebookTransfer" : {
   "sourceTeacher": {
          "principalType":"Person",
          "id":"alias@tenant"
  },
  "destinationTeacher" : {             
  "principalType":"Person",
          "id":"alias@tenant"
    },
   "destinationNotebookName": "notebook-name"
  }
}
Parameter Beschreibung
destinationNotebookName Der Name des Notizbuchs im Zielverzeichnis.
destinationTeacher Ein Hauptobjekt.
sourceTeacher Ein Hauptobjekt.

Der Quell- und der Ziel-Lehrer werden durch ein Hauptobjekt repräsentiert, das die folgenden Parameter enthält.

Parameter Beschreibung
ID Der Hauptname des Office 365-Benutzers.

Weitere Informationen zu Benutzern und Gruppen finden Sie unter der Azure AD-Diagramm-API-Dokumentation.
principalType Person

Beispiel

Das folgende Beispiel überträgt eine Klassennotizbuch mit dem Namen Classidmath-101.

Anforderung

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"
  }
}

Antwort

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

Den Lokation Endpunkt abfragen, um den Status der Übertragung des Notizbuchs zu erhalten.

Anforderung

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

Antwort

{
"@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"
}

Mitgliedschaft aktualisieren

Um die Mitgliedschaft eines Klassen-Notizbuchs in einem asynchronen Aufruf zu aktualisieren, senden Sie eine POST-Anforderung an den Endpunkt ClassNotebooks mit einer Kopfzeile Prefer: respond-async.

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

Weitere Informationen zum Nachrichtentext und zum JSON-Objekt mit den Aktualisierungsaktionsaktionsparametern finden Sie unter Mitgliedschaft aktualisieren in Zusammenarbeit mit Klassennotizbücher.

Beispiel

Im folgenden Beispiel wird das Standard-Klassennotizbuch einer einheitlichen Gruppe synchronisiert.

Anforderung

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

Antwort

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

Abfrage des Enpunkts Lokation , um den Status der Aktualisierungsmitgliedschaft eines Klassennotizbuchs abzurufen.

Anforderung

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

Antwort

{
"@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"
}

Siehe auch