Получение уведомлений об изменениях для обновлений виртуальных событий Microsoft Teams
Уведомления об изменении в Microsoft Graph поддерживают подписки на виртуальные события. Уведомления об изменениях обеспечивают модель с низкой задержкой, позволяя поддерживать веб-перехватчик для виртуальных событий Microsoft Teams. Виртуальные подписки на события имеют максимальный период в день. Чтобы продлить время существования подписки, ее необходимо продлить до истечения срока действия. Кроме того, пользователь может создать новую подписку для ресурса после истечения срока действия существующей подписки. Дополнительные сведения см. в статье Получение уведомлений об изменениях с помощью API Microsoft Graph.
Разрешения
Тип разрешения | Разрешения (в порядке повышения привилегий) | Поддерживаемые версии |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | VirtualEvent.Read, VirtualEvent.ReadWrite | версия 1.0, бета-версия |
Делегированные (личная учетная запись Майкрософт) | Не поддерживается. | Не поддерживается. |
Приложение | VirtualEvent.Read.All | версия 1.0, бета-версия |
Подписываемые виртуальные события
В следующей таблице приведена сводка подписываемых типов виртуальных событий, URL-адресов ресурсов, используемых в полезных данных подписки, и поддерживаемых типов изменений для подписки на уведомления.
Типы виртуальных событий | URL-адрес ресурса | Поддерживаемые типы изменений | Поддерживаемые типы разрешений |
---|---|---|---|
Все события (на уровне клиента) | solutions/virtualEvents/events |
создано | Приложение |
Все события (на уровне клиента по идентификаторам организатора или соорганизатора) | solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']) |
создано | Приложение |
События определенного вебинара | solutions/virtualEvents/webinars/{webinarId} |
Обновлено | Делегированное приложение |
События подготовки отчета о посещаемости для вебинара | solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports |
создано | Делегированное приложение |
События сеанса вебинара | solutions/virtualEvents/webinars/{webinarId}/sessions |
создано, обновлено | Делегированное приложение |
События регистрации вебинара | solutions/virtualEvents/webinars/{webinarId}/registrations |
создано, обновлено | Делегированное приложение |
Заметка: Замените значения в скобках фактическими значениями.
Подписка на все события, созданные в клиенте
Подписки для всех событий уникального приложения и клиента можно указать в полезных данных подписки с помощью следующего синтаксиса: solutions/virtualEvents/events
. Подписка указывает URL-адрес уведомления для получения всех уведомлений, созданных событиями в клиенте для виртуальных событий. Для этой подписки поддерживаются только уведомления, созданные событиями. Клиент может иметь только один тип подписки для каждого приложения. Делегированные пользователем разрешения на виртуальные события ограничены в создании подписки этого типа.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/events",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Подписка на все события, созданные в клиенте с соответствующими организаторами
Вы можете подписаться на все события, включающие участников набора организаторов или соорганизаторов, с помощью следующего ресурса: solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2'])
. Эти подписки получают все созданные уведомления для всех виртуальных событий для набора идентификаторов организатора или соорганизатора. Эта подписка считается подпиской на все события, созданные в клиенте. Делегированные пользователем разрешения на виртуальные события ограничены в создании подписки этого типа.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2'])",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Подписка на обновленные события определенного вебинара
Чтобы получать обновленные уведомления для определенного вебинара, необходимо создать подписку на этот уникальный вебинар с помощью следующего ресурса: solutions/virtualEvents/webinars/{webinarId}
.
Приложение может иметь только одну подписку на вебинар внутри клиента. Маркер, делегированный пользователем, позволяет настроить одну подписку для получения уведомлений об обновлении вебинара в клиенте. Эта подписка доступна только для пользователей, которые организовали или совместно организовали вебинары в том же клиенте, что и узел событий.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Подписка на события отчета о посещаемости для всех сеансов в вебинаре
Чтобы получать уведомления, когда отчеты о посещаемости становятся доступными для сеансов в вебинаре виртуальных событий, необходимо создать подписку со следующим ресурсом: solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports
.
Приложение может иметь только одну подписку на отчеты о посещаемости вебинара внутри клиента. Маркер, делегированный пользователем, позволяет настроить одну подписку для получения уведомлений об обновлении вебинара в клиенте. Эта подписка доступна только для пользователей, которые организовали или совместно организовали вебинары в том же клиенте, что и узел событий.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Подписка на уведомления о событиях сеанса для вебинара
Чтобы подписаться на уведомления для сеансов, созданных или обновленных на вебинаре, укажите ресурс как solutions/virtualEvents/webinars/{webinarId}/sessions
.
Приложение может иметь только одну подписку на уровне сеанса для каждого вебинара в клиенте. Маркер, делегированный пользователем, позволяет настроить одну подписку для получения уведомлений об обновлении вебинара в клиенте. Эта подписка доступна только для пользователей, которые организовали или совместно организовали вебинары в том же клиенте, что и узел событий.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created, updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}/sessions",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Подписка на события вызова собрания определенного сеанса
Сведения о том, как подписаться на события приглашения на собрание определенного сеанса, см. в статье Получение уведомлений об изменениях для обновлений вызовов собраний Microsoft Teams.
Подписка на события регистрации для вебинара
Чтобы подписаться на уведомления о событиях регистрации вебинара, укажите ресурс как solutions/virtualEvents/webinars/{webinarId}/registrations
.
Приложение может иметь только одну подписку уровня регистрации для каждого вебинара внутри клиента. Маркер, делегированный пользователем, позволяет настроить одну подписку для получения уведомлений об обновлении вебинара в клиенте. Однако подписка доступна только для пользователей, которые организовали или совместно организовали вебинары в том же клиенте, что и узел событий.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json
{
"changeType": "created, updated",
"notificationUrl": "https://webhook.contoso.com/api",
"lifecycleNotificationUrl": "https://webhook.contoso.com/api",
"resource": "solutions/virtualEvents/webinars/{webinarId}/registrations",
"expirationDateTime": "2021-02-01T11:00:00.0000000Z",
"clientState": "secretClientState"
}
Получение уведомлений о событиях
Уведомления включают URL-адрес ресурса измененного ресурса. Вы можете отправить отдельный запрос на URL-адрес ресурса, чтобы получить сведения о созданном или обновленном ресурсе.
Типы уведомлений
В следующей таблице указаны поддерживаемые типы уведомлений и изменений для ресурса виртуальных событий.
Тип уведомления | ИД ресурса | Типы изменений |
---|---|---|
Вебинар | solutions/virtualEvents/webinars/{webinarId} |
создано, обновлено |
Session | solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId} |
создано, обновлено |
Регистрация | solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId} |
создано, обновлено |
Отчет о посещаемости собрания | solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports |
создано |
Примеры уведомлений о событиях
В следующих примерах JSON показаны ответы для каждого поддерживаемого типа изменения события.
Событие создано
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/events/",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/",
"@odata.type": "#microsoft.graph.virtualEvent",
"id": "solutions/virtualEvents/webinars/{webinarId}/"
}
}
]
}
Событие обновлено
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/",
"@odata.type": "#microsoft.graph.virtualEvent",
"id": "solutions/virtualEvents/webinars/{webinarId}/"
}
}
]
}
Примеры уведомлений сеанса
В следующих примерах JSON показаны ответы для каждого поддерживаемого типа изменения сеанса.
Сеанс создан
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/sessions",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}",
"@odata.type": "#microsoft.graph.virtualEventSession",
"id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}"
}
}
]
}
Сеанс обновлен
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/sessions",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}",
"@odata.type": "#microsoft.graph.virtualEventSession",
"id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}"
}
}
]
}
Обновленные события собрания сеанса
Сведения о типах уведомлений, получаемых для обновления вызовов собраний, см. в разделе Типы уведомлений о событиях.
Примеры уведомлений о регистрации
В следующих примерах JSON показаны ответы для каждого поддерживаемого типа изменения регистрации.
Регистрация создана
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/registrations",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}",
"@odata.type": "#microsoft.graph.virtualEventRegistration",
"id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}"
}
}
]
}
Регистрация обновлена
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "updated",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/registrations",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}",
"@odata.type": "#microsoft.graph.virtualEventRegistration",
"id": "solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId}"
}
}
]
}
Создан отчет о посещаемости
События, созданные отчетом о посещаемости, возвращают конечную точку объекта meetingAttendanceReport . Пользователи могут использовать эту конечную точку в **resourceData.@odata.id** свойство для запроса сведений в объекте meetingAttendanceReport .
{
"value": [
{
"subscriptionId": "7015b436-a8b8-4260-af80-5af8cba32e62",
"clientState": "secret client state",
"changeType": "created",
"tenantId": "f5b076c8-b508-4ba3-a1a7-19d1c0bcef03",
"resource": "solutions/virtualEvents/webinars/{webinarId}/getAttendanceReports",
"subscriptionExpirationDateTime": "2023-01-28T00:00:00.0000000Z",
"resourceData": {
"@odata.id": "solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId}/attendanceReports/{reportId}",
"@odata.type": "#microsoft.graph.meetingAttendanceReport",
"id": "{reportId}"
}
}
]
}