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

Microsoft Graph のサポート サブスクリプションの通知を仮想イベントに変更します。 変更通知では、Webhook を維持して仮想イベントをMicrosoft Teamsできるようにすることで、待機時間の短いモデルが提供されます。 仮想イベント サブスクリプションには、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}/getAttendanceReports 作成済み 委任されたアプリケーション
ウェビナーのセッション イベント 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}/getAttendanceReports

アプリケーションは、テナント内のウェビナーの出席レポートのサブスクリプションを 1 つだけ持つことができます。 ユーザー委任トークンを使用すると、テナント内でウェビナーの更新通知を受信するための 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/webinars/{webinarId}/getAttendanceReports",
  "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} 作成、更新
会議出席レポート 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}"
      }
    }
  ]
}