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


Получение уведомлений об изменениях для обновлений виртуальных событий 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}"
      }
    }
  ]
}