Recevoir des notifications de modification pour les mises à jour d’événements virtuels Microsoft Teams

Les notifications de modification dans Microsoft Graph prennent en charge les abonnements aux événements virtuels. Les notifications de modification fournissent un modèle à faible latence en vous permettant de gérer un webhook pour les événements virtuels Microsoft Teams. Les abonnements aux événements virtuels ont une période maximale d’un jour. Pour prolonger la durée de vie d’un abonnement, celui-ci doit être renouvelé avant la période d’expiration. Un utilisateur peut également décider de créer un abonnement pour la ressource après l’expiration d’un abonnement existant. Pour plus d’informations, consultez Utiliser microsoft API Graph pour obtenir des notifications de modification.

Autorisations

Type d’autorisation Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins) Versions prises en charge
Déléguée (compte professionnel ou scolaire) VirtualEvent.Read, VirtualEvent.ReadWrite v1.0, bêta
Déléguée (compte Microsoft personnel) Non prise en charge. Non prise en charge.
Application VirtualEvent.Read.All v1.0, bêta

Événements virtuels pouvant être souscrits

Le tableau suivant fournit un résumé des types d’événements virtuels pouvant être souscrits, des URL de ressource utilisées dans la charge utile de l’abonnement et des types de modifications pris en charge pour l’abonnement aux notifications.

Types d’événements virtuels URL de ressource Types de modifications pris en charge Types d’autorisation pris en charge
Tous les événements (au niveau du locataire) solutions/virtualEvents/events créé Application
Tous les événements (au niveau du locataire par ID d’organisateur/co-organisateur) solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']) créé Application
Événements d’un webinaire spécifique solutions/virtualEvents/webinars/{webinarId} Actualisé Application, déléguée
Événements de session d’un webinaire solutions/virtualEvents/webinars/{webinarId}/sessions créé, mis à jour Application, déléguée
Événements d’inscription d’un webinaire solutions/virtualEvents/webinars/{webinarId}/registrations créé, mis à jour Application, déléguée

Note: Remplacez les valeurs dans par des parenthèses par des valeurs réelles.

S’abonner à tous les événements créés dans un locataire

Vous pouvez spécifier des abonnements pour tous les événements d’une application et d’un locataire uniques dans la charge utile de l’abonnement à l’aide de la syntaxe suivante : solutions/virtualEvents/events. L’abonnement désigne l’URL de notification pour recevoir toutes les notifications créées par un événement dans un locataire pour les événements virtuels. Seules les notifications créées par un événement sont prises en charge pour cet abonnement. Un locataire ne peut avoir qu’un seul type d’abonnement par application. Les autorisations d’événements virtuels délégués par l’utilisateur ne sont pas autorisées à créer ce type d’abonnement.

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"
}

S’abonner à tous les événements créés dans un locataire avec les organisateurs appropriés

Vous pouvez vous abonner à tous les événements qui incluent tous les membres d’un ensemble d’organisateurs ou de co-organisateurs à l’aide de la ressource suivante : solutions/virtualEvents/events/getEventsFromOrganizers(organizerIds=['id1', 'id2']). Ces abonnements reçoivent toutes les notifications créées pour tous les événements virtuels pour un ensemble d’ID d’organisateur ou de co-organisateur. Cet abonnement est considéré comme un abonnement à tous les événements créés dans un locataire. Les autorisations d’événements virtuels délégués par l’utilisateur ne sont pas autorisées à créer ce type d’abonnement.

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"
}

S’abonner aux événements mis à jour d’un webinaire spécifique

Pour recevoir des notifications mises à jour pour un webinaire particulier, vous devez créer un abonnement pour ce webinaire unique à l’aide de la ressource suivante : solutions/virtualEvents/webinars/{webinarId}.

Une application ne peut avoir qu’un seul abonnement par webinaire au sein d’un locataire. Un jeton délégué par l’utilisateur vous permet de configurer un abonnement pour recevoir des notifications de mise à jour de webinaire au sein d’un locataire, mais l’abonnement n’est disponible que pour les utilisateurs qui ont organisé ou co-organisé des webinaires dans le même locataire que l’hôte d’événement.

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"
}

S’abonner aux notifications d’événements de session pour un webinaire

Pour vous abonner aux notifications pour les sessions créées ou mises à jour dans un webinaire, spécifiez la ressource comme solutions/virtualEvents/webinars/{webinarId}/sessions.

Une application ne peut avoir qu’un seul abonnement de niveau session par webinaire dans un locataire. Un jeton délégué par l’utilisateur vous permet de configurer un abonnement pour recevoir des notifications de mise à jour de webinaire au sein d’un locataire, mais l’abonnement n’est disponible que pour les utilisateurs qui ont organisé ou co-organisé des webinaires dans le même locataire que l’hôte d’événement.

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"
}

S’abonner aux événements d’appel de réunion d’une session spécifique

Pour plus d’informations sur la façon de s’abonner aux événements d’appel de réunion d’une session spécifique, consultez Obtenir des notifications de modification pour les mises à jour des appels de réunion Microsoft Teams.

S’abonner à des événements d’inscription pour un webinaire

Pour vous abonner aux notifications pour les événements d’inscription d’un webinaire, spécifiez la ressource en tant que solutions/virtualEvents/webinars/{webinarId}/registrations.

Une application ne peut avoir qu’un seul abonnement de niveau d’inscription par webinaire au sein d’un locataire. Un jeton délégué par l’utilisateur vous permet de configurer un abonnement pour recevoir des notifications de mise à jour de webinaire au sein d’un locataire, mais l’abonnement n’est disponible que pour les utilisateurs qui ont organisé ou co-organisé des webinaires dans le même locataire que l’hôte d’événement.

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"
}

Réception de notifications d’événements

Les notifications incluent l’URL de la ressource modifiée. Vous pouvez envoyer une demande distincte à l’URL de la ressource pour obtenir des informations sur une ressource créée ou mise à jour.

Types de notification

Le tableau suivant indique les types de notification et de modification pris en charge pour la ressource d’événements virtuels.

Type de notification ID de ressource Change Types
Webinaire solutions/virtualEvents/webinars/{webinarId} créé, mis à jour
Session solutions/virtualEvents/webinars/{webinarId}/sessions/{sessionId} créé, mis à jour
Registration solutions/virtualEvents/webinars/{webinarId}/registrations/{registrationId} créé, mis à jour

Exemples de notification d’événement

Les exemples JSON suivants montrent les réponses pour chaque type de modification pris en charge d’un événement.

Événement créé

{
  "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}/"
      }
    }
  ]
}

Événement mis à jour

{
  "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}/"
      }
    }
  ]
}

Exemples de notification de session

Les exemples JSON suivants montrent les réponses pour chaque type de modification pris en charge d’une session.

Session créée

{
  "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}"
      }
    }
  ]
}

Session mise à jour

{
  "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}"
      }
    }
  ]
}

Événements mis à jour d’appel de réunion de session

Pour plus d’informations sur les types de notifications reçues pour les mises à jour des appels de réunion, consultez Types de notifications d’événements.

Exemples de notifications d’inscription

Les exemples JSON suivants montrent les réponses pour chaque type de modification pris en charge d’une inscription.

Inscription créée

{
  "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}"
      }
    }
  ]
}

Inscription mise à jour

{
  "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}"
      }
    }
  ]
}