Microsoft Teams 仮想イベント更新プログラムの変更通知を取得する

Microsoft Graph のサポート サブスクリプションの通知を仮想イベントに変更します。 変更通知は、Microsoft Teams 仮想イベントへの Webhook を維持できるようにすることで、待機時間の短いモデルを提供します。 仮想イベント サブスクリプションには、1 日の最大期間があります。 サブスクリプションの有効期間を延長するには、有効期限が切れる前にサブスクリプションを更新する必要があります。 または、ユーザーは、既存のサブスクリプションの有効期限が切れた後に、リソースの新しいサブスクリプションを作成することを決定する場合があります。 詳細については、「Microsoft Graph APIを使用して変更通知を取得する」を参照してください。

アクセス許可

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ) サポートされるバージョン
委任 (職場または学校のアカウント) VirtualEvent.Read、VirtualEvent.ReadWrite v1.0、ベータ版
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション VirtualEvent.Read.All v1.0、ベータ版

サブスクライブ可能な仮想イベント

次の表は、サブスクライブ可能な仮想イベントの種類、サブスクリプション ペイロードで使用されるリソース URL、および通知サブスクリプションでサポートされている変更の種類の概要を示しています。

仮想イベントの種類 リソース URL サポートされている変更の種類 サポートされているアクセス許可の種類
すべてのイベント (テナント レベル) solutions/virtualEvents/events 作成済み アプリケーション
すべてのイベント (開催者/共同開催者 ID 別のテナント レベル) solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']) 作成済み アプリケーション
特定のウェビナーのイベント solutions/virtualEvents/webinars/{webinarId} 更新 委任されたアプリケーション
ウェビナーのセッション イベント solutions/virtualEvents/webinars/{webinarId}/sessions 作成、更新 委任されたアプリケーション
ウェビナーの登録イベント solutions/virtualEvents/webinars/{webinarId}/registrations 作成、更新 委任されたアプリケーション

メモ: の値をかっこで実際の値に置き換えます。

テナントで作成されたすべてのイベントをサブスクライブする

次の構文 solutions/virtualEvents/eventsを使用して、サブスクリプション ペイロード内の一意のアプリとテナントのすべてのイベントのサブスクリプションを指定できます。 サブスクリプションは、仮想イベントのテナントでイベントが作成されたすべての通知を受信する通知 URL を指定します。 このサブスクリプションでは、イベントによって作成された通知のみがサポートされます。 テナントは、アプリケーションごとに 1 種類のサブスクリプションのみを持つことができます。 ユーザー委任仮想イベントのアクセス許可は、この種類のサブスクリプションの作成から制限されます。

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']) これらのサブスクリプションは、開催者または共同開催者 ID のセットのすべての仮想イベントに対して作成されたすべての通知を受け取ります。 このサブスクリプションは、テナントで作成されたすべてのイベントのサブスクリプションと見なされます。 ユーザー委任仮想イベントのアクセス許可は、この種類のサブスクリプションの作成から制限されます。

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}

アプリケーションは、テナント内のウェビナーごとに 1 つのサブスクリプションのみを持つことができます。 ユーザー委任トークンを使用すると、テナント内でウェビナーの更新通知を受信するための 1 つのサブスクリプションを設定できますが、サブスクリプションは、イベント ホストと同じテナントでウェビナーを開催または共同組織したユーザーのみが使用できます。

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}/sessions指定します。

アプリケーションは、テナント内のウェビナーごとに 1 つのセッション レベルのサブスクリプションのみを持つことができます。 ユーザー委任トークンを使用すると、テナント内でウェビナーの更新通知を受信するための 1 つのサブスクリプションを設定できますが、サブスクリプションは、イベント ホストと同じテナントでウェビナーを開催または共同組織したユーザーのみが使用できます。

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指定します。

アプリケーションは、テナント内のウェビナーごとに 1 つの登録レベルのサブスクリプションのみを持つことができます。 ユーザー委任トークンを使用すると、テナント内でウェビナーの更新通知を受信するための 1 つのサブスクリプションを設定できますが、サブスクリプションは、イベント ホストと同じテナントでウェビナーを開催または共同組織したユーザーのみが使用できます。

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 に別の要求を送信して、作成または更新されたリソースに関する情報を取得できます。

通知の種類

次の表は、仮想イベント リソースでサポートされている通知と変更の種類を示しています。

通知の種類 リソース ID Change Types
ウェビナー solutions/virtualEvents/webinars/{webinarId} 作成、更新
Session solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId} 作成、更新
登録 solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId} 作成、更新

イベント通知の例

次の 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}"
      }
    }
  ]
}