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