Поделиться через


Работа с асинхронными записными книжками для занятий

Область применения: корпоративные записные книжки в Office 365

В школах, колледжах и университетах по всему миру используются записные книжки для занятий OneNote для повышения уровня производительности, задействования и сотрудничества. Вы можете использовать записные книжки для занятий для каждого занятия, проекта, условия и назначения.

Конечная точка classNotebooks используется для выполнения общих задач для записных книжек для занятий, таких как их создание и добавление или удаление учащихся во время асинхронных вызовов.

Примечание

API OneNote предоставляет конечную точкуclassNotebooks для операций, характерных для записных книжек для занятий.

Асинхронный API

Для выполнения асинхронных вызовов конечной точки classNotebooks отправьте запрос с заголовком Prefer: respond-async.

Ответ

Данные в ответе Описание
код успешного завершения действия; Код состояния HTTP 202.
Заголовок Location URL-адрес для опроса состояния операции.

Опрос конечной точки операции возвращает объект OperationModel, который содержит состояние операции и другую информацию.
Заголовок X-CorrelationId GUID, уникальный идентификатор запроса.

Это значение можно использовать вместе со значением заголовка Date при устранении неполадок совместно со службой поддержки Майкрософт.

Модель операции

Модель операции Описание
Id ИД операции.
Состояние Состояние может быть следующим: выполнен, выполняется, не запущен или не выполнен.

- Если состояние "выполнен", свойство resourceLocation содержит конечную точку ресурса для новой записной книжки classNotebook.

- Если состояние "выполняется", свойства createdDateTime и lastActionDateTime показывают дату и время создания запроса и время его последнего выполнения.

- Если состояние "не выполнен", то в свойствах error и @api.diagnostics содержится информация об ошибке.
createdDateTime Показывает дату и время создания запроса.
lastActionDateTime Показывает дату и время создания запроса и время его последнего выполнения.
resourceLocation Конечная точка ресурса.
resourceId Идентификатор ресурса.

Создание URI запроса

Сведения о создании запроса URI см. в разделе Создание запроса URI в теме Работа с записными книжками для занятий.

Создание записных книжек для занятий

Чтобы создать записную книжку для занятий во время асинхронного вызова, отправьте запрос POST конечной точке classNotebooks с заголовком Prefer: respond-async.

POST ../classNotebooks

Информацию о тексте сообщения и объекте JSON с параметрами создания записной книжки для занятий см. в разделе Создание записных книжек для занятий.

Пример

Следующий запрос создает записную книжку для занятий с именем Математика 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"
}

Удаление учащихся и преподавателей

Удаление учащихся и преподавателей из записной книжки для занятий отменяет их доступ к записной книжке, но не удаляет содержимое. Чтобы удалить учащегося или преподавателя из записной книжки для занятий в асинхронном вызове, отправьте запрос DELETE соответствующей конечной точке с заголовком Prefer: respond-async.

Удаление учащегося

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

Удаление преподавателя

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

Вы можете удалить одного учащегося или одного преподавателя в каждом запросе.

Пример

Следующий запрос удаляет указанного преподавателя из указанной записной книжки для занятий.

Запрос

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

Перенос записной книжки

Для переноса записной книжки от одного преподавателя другому преподавателю в асинхронном вызове отправьте запрос POST конечной точке classNotebooks.

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 Объект-участник.

Исходный и целевой преподаватели представлены в виде объектов-участников, содержащих следующие параметры.

Параметр Описание
ИД Имя участника-пользователя Office 365.

Дополнительные сведения о пользователях и группах см. в документации по API Azure AD Graph.
principalType Человек

Пример

В следующем примере показан перенос записной книжки для занятий с именем Math-101 (Математика 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"
}

Обновление членства

Для обновления членства в записной книжке для занятий в асинхронном вызове отправьте запрос POST конечной точке classNotebooks с заголовком 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"
}

См. также