Configurer des notifications pour les modifications apportées aux données de ressource

Les notifications de modification permettent aux applications de recevoir des alertes lorsqu’une ressource Microsoft Graph les intéresse; c’est-à-dire créé, mis à jour ou supprimé. Microsoft Graph envoie des notifications au point de terminaison client spécifié, et le service client traite les notifications en fonction des besoins de l’entreprise. Par exemple, le service peut extraire plus de données, mettre à jour son cache et ses vues, etc.

Pourquoi recevoir des notifications de modification ?

Les notifications de modification suivent un modèle piloté par les événements où les clients reçoivent des alertes lorsque des modifications se produisent au lieu d’interroger Microsoft Graph. Selon votre logique métier, les notifications de modification sont appropriées dans les cas suivants :

  • Vous vous abonnez à une ressource qui change fréquemment.
  • Vous devez réagir aux changements en quasi-temps réel.
  • Vous souhaitez éviter d’interroger fréquemment Microsoft Graph, ce qui peut vous amener à atteindre les limites de limitation.

Types de notifications de modification

Microsoft Graph prend en charge trois types de notifications de modification :

  • Notifications de base : notifications de modification qui ne contiennent pas de données de ressource autres que l’ID de la ressource modifiée. Toutes les ressources Microsoft Graph prennent en charge les notifications de base. Lorsqu’une application reçoit une notification de base, le service peut utiliser l’ID pour interroger l’objet modifié.
  • Notifications enrichies : notifications de modification qui incluent les données de ressource de l’objet modifié. Pour obtenir la liste des ressources Microsoft Graph qui prennent en charge les notifications enrichies, consultez ressources prises en charge.
  • Notifications de cycle de vie : notifications qui alertent le client lorsqu’il est exposé à un risque de notification de modification manquante en raison du cycle de vie de son abonnement. Pour plus d’informations sur les notifications de cycle de vie, consultez Notifications de cycle de vie.

Ressources prises en charge

Une application peut s’abonner aux modifications apportées aux ressources Microsoft Graph répertoriées dans le tableau, ce qui indique également les limites qui s’appliquent aux abonnements aux ressources. Quand une limite est dépassée, les tentatives de création d’un abonnement entraînent une réponse d’erreur 403 Forbidden . La propriété message de la réponse d’erreur explique la limite qui a été dépassée.

Remarque

Les abonnements aux ressources marqués d’un astérisque (*) sont disponibles uniquement sur le point de /beta terminaison.

Resource Chemins d’accès aux ressources pris en charge Limitations
Imprimante pour impression cloud Modifications lorsqu’un travail d’impression est prêt à être téléchargé (événement jobFetchable) : /print/printers/{id}/jobs -
Impression Cloud printTaskDefinition Change lorsqu’il existe un travail valide dans la file d’attente (événement jobStarted) : /print/printtaskdefinition/{id}/tasks -
driveItem sur OneDrive (personnel) Modifications apportées au contenu dans la hiérarchie d’un dossier : /users/{id}/drive/root -
driveItem sur OneDrive Entreprise Modifications apportées au contenu dans la hiérarchie du dossier racine : /drives/{id}/root , /users/{id}/drive/root -
groupe Modifications apportées à tous les groupes : /groups

Modifications apportées à un groupe spécifique : /groups/{id}

Modifications apportées aux propriétaires d’un groupe spécifique : /groups/{id}/owners

Modifications apportées aux membres d’un groupe spécifique : /groups/{id}/members
Quotas maximaux d'abonnement :
  • Par application (pour tous les locataires combinés) : 50 000 abonnements au total.
  • Par locataire (pour toutes les applications combinées) : 1 000 abonnements au total sur toutes les applications.
  • Par combinaison d’application et de locataire : 100 abonnements au total.

    Non pris en charge pour les locataires Azure AD B2C.

    Problème connu pour l’abonnement changeType.
  • Une liste sous un site SharePoint Modifications apportées au contenu de la liste : /sites/{site-id}/lists/{list-id} -
    Conversation de groupe Microsoft 365 Modifications apportées aux conversations d’un groupe : groups/{id}/conversations -
    message Outlook Modifications apportées à tous les messages dans la boîte aux lettres d’un utilisateur : /users/{id}/messages , /me/messages

    Modifications apportées aux messages dans la boîte de réception d’un utilisateur : /users/{id}/mailFolders('inbox')/messages , /me/mailFolders('inbox')/messages
    Un maximum de 1 000 abonnements actifs par boîte aux lettres pour toutes les applications est autorisé.
    événement Outlook Modifications apportées à tous les événements dans la boîte aux lettres d’un utilisateur : /users/{id}/events , /me/events Un maximum de 1 000 abonnements actifs par boîte aux lettres pour toutes les applications est autorisé.
    contact personnel Outlook Modifications apportées à tous les contacts personnels dans la boîte aux lettres d’un utilisateur : /users/{id}/contacts , /me/contacts Un maximum de 1 000 abonnements actifs par boîte aux lettres pour toutes les applications est autorisé.
    Alerte de sécurité Modifications apportées à une alerte spécifique : /security/alerts/{id}

    Modifications apportées aux alertes filtrées : /security/alerts/?$filter={parameters}
    -
    Teams callRecord Modifications apportées à tous les enregistrements d’appels : /communications/callRecords Quotas maximaux d'abonnement :
  • Par organization : 100 abonnements au total.
  • Conversation Teams Modifications apportées à n’importe quelle conversation dans le locataire : /chats

    Modifications apportées à une conversation spécifique : /chats/{id}
    Quotas maximaux d'abonnement :
  • Par combinaison d’application et de conversation : 1 abonnement.
  • Par organization : 10 000 abonnements au total.
  • chatmessage Teams Modifications apportées aux messages de conversation dans tous les canaux de toutes les équipes : /teams/getAllMessages

    Modifications apportées aux messages de conversation dans un canal spécifique : /teams/{id}/channels/{id}/messages

    Modifications apportées aux messages de conversation dans toutes les conversations : /chats/getAllMessages

    Modifications apportées aux messages de conversation dans une conversation spécifique : /chats/{id}/messages

    Modifications apportées aux messages de conversation dans toutes les conversations dont un utilisateur particulier fait partie : /users/{id}/chats/getAllMessages
    Quotas maximaux d'abonnement :
  • Par application et canal ou combinaison de conversation : 1 abonnement.
  • Par organization : 10 000 abonnements au total.
  • Canal Teams Modifications apportées aux canaux dans toutes les équipes : /teams/getAllChannels

    Modifications apportées au canal dans une équipe spécifique : /teams/{id}/channels
    Quotas maximaux d'abonnement :
  • Par combinaison d’application et d’équipe : 1 abonnement.
  • Par organization : 10 000 abonnements au total.
  • conversationMember Teams Modifications apportées à l’appartenance à une équipe spécifique : /teams/{id}/members

    Modifications apportées à l’appartenance à tous les canaux d’une équipe spécifique : teams/{id}/channels/getAllMembers

    Modifications apportées à l’appartenance à une conversation spécifique : /chats/{id}/members

    Modifications apportées à l’appartenance à toutes les conversations : /teams/getAllMembers
    Quotas maximaux d'abonnement :
  • Par combinaison d’application et d’équipe : 1 abonnement.
  • Par organization : 10 000 abonnements au total.
  • Teams onlineMeeting * Modifications apportées à une réunion en ligne : /communications/onlineMeetings/?$filter=JoinWebUrl eq {joinWebUrl}
    Présence de Teams * Modifications apportées à la présence d’un seul utilisateur : /communications/presences/{id}

    Modifications apportées à plusieurs présences d’utilisateurs : /communications/presences?$filter=id in ({id},{id}...)
    Équipe Teams Modifications apportées à n’importe quelle équipe dans le locataire : /teams

    Modifications apportées à une équipe spécifique : /teams/{id}
    Quotas maximaux d'abonnement :
  • Par combinaison d’application et d’équipe : 1 abonnement.
  • Par organization : 10 000 abonnements au total.
  • todoTask Modifications apportées à toutes les tâches d’une liste de tâches spécifique : /me/todo/lists/{todoTaskListId}/tasks -
    utilisateur Modifications apportées à tous les utilisateurs : /users

    Modifications apportées à un utilisateur spécifique : /users/{id}
    Quotas maximaux d'abonnement :
  • Par application (pour tous les locataires combinés) : 50 000 abonnements au total.
  • Par locataire (toutes applications combinées) : 1000 abonnements au total pour toutes les applications
  • Par combinaison d’application et de locataire : 100 abonnements au total.

    Non pris en charge pour les comptes Microsoft personnels tels que outlook.com.

    Non pris en charge pour les locataires Azure AD B2C.

    Problème connu pour l’abonnement changeType.
  • Les ressources suivantes prennent en charge les notifications enrichies (notifications avec des données de ressources) :

    Réception de notifications de modification

    Microsoft Graph peut envoyer des notifications de modification aux clients via les canaux suivants.

    Durée de vie de l’abonnement

    Les abonnements ont une durée de vie limitée. Les applications doivent renouveler leurs abonnements avant l’heure d’expiration ; Sinon, ils doivent créer un abonnement. Les applications peuvent également annuler leur abonnement à tout moment pour ne plus recevoir de notifications de modifications.

    Le tableau suivant indique les durées d’expiration maximales des abonnements par ressource dans Microsoft Graph.

    Resource Délai d’expiration maximal
    Alerte de sécurité 43 200 minutes (moins de 30 jours)
    Teams callRecord 4 230 minutes (moins de 3 jours)
    Canal Teams 60 minutes (1 heure)
    Conversation Teams 60 minutes (1 heure)
    Teams chatMessage 60 minutes (1 heure)
    conversationMember Teams 60 minutes (1 heure)
    Teams onlineMeeting 4 320 minutes (3 jours)
    Équipe Teams 60 minutes (1 heure)
    Conversation de groupe 4 230 minutes (moins de 3 jours)
    OneDrive driveItem 42 300 minutes (moins de 30 jours)
    Liste SharePoint 42 300 minutes (moins de 30 jours)
    Message Outlook, événement, contact 4 230 minutes (moins de 3 jours)
    Ressources d’utilisateur, de groupeet d’annuaire 41 760 minutes (moins de 29 jours)
    onlineMeeting 4 230 minutes (moins de 3 jours)
    présence 60 minutes (1 heure)
    Imprimer imprimante 4 230 minutes (moins de 3 jours)
    Imprimer printTaskDefinition 4 230 minutes (moins de 3 jours)
    todoTask 4 230 minutes (moins de 3 jours)

    Les webhooks pour cette ressource sont disponibles uniquement dans le point de terminaison global et non dans les clouds nationaux.
    baseTask (déconseillé) 4 230 minutes (moins de 3 jours)

    Note:les applications existantes et nouvelles ne doivent pas dépasser la valeur prise en charge. À l’avenir, les demandes pour créer ou renouveler un abonnement au-delà de la valeur maximale peut échouer.

    Gestion des abonnements

    Les clients peuvent créer, renouveler et supprimer des abonnements. Ensuite, lorsque l’abonnement est valide et que des modifications se produisent dans la ressource abonnée, Microsoft Graph envoie des notifications de modification au point de terminaison de notification spécifié.

    Vous gérez l’abonnement à l’aide du type de ressource d’abonnement et de ses méthodes associées. Lorsque l’abonnement est valide et que des modifications se produisent dans la ressource abonnée, Microsoft Graph envoie une notification de modification dans une structure définie dans le type de ressource changeNotificationCollection.

    Pour plus d’informations sur la gestion des abonnements pour les différents canaux de distribution à l’aide de Microsoft Graph, consultez les articles suivants.

    Exemples de code

    Les exemples de code suivants sont disponibles sur GitHub.

    Latence

    Le tableau suivant indique le temps de latence à prévoir entre un événement survenant dans le service et la remise de la notification de changement.

    Ressource Latence moyenne Latence maximale
    [alerte] [] 1 Moins de 3 minutes 5 minutes
    [callRecord] [] Moins de 15 minutes 60 minutes
    [channel] [] Moins de 10 secondes 60 minutes
    [conversation] [] Moins de 10 secondes 60 minutes
    [chatMessage] [] Moins de 10 secondes 1 minute
    [contact] [] Inconnu Inconnu
    [conversation] [] Inconnu Inconnu
    [conversationMember] [] Moins de 10 secondes 60 minutes
    [driveItem] [] Less than 1 minute 5 minutes
    [événement] [] Inconnu Inconnu
    [groupe] [] Moins de 2 minutes 15 minutes
    [list] [] Less than 1 minute 5 minutes
    [message] [] Inconnu Inconnu
    [onlineMeeting] [] Moins de 10 secondes 1 minute
    [présence] [] Moins de 10 secondes 1 minute
    [printer] [] Less than 1 minute 5 minutes
    [printTaskDefinition] [] Less than 1 minute 5 minutes
    [team] [] Moins de 10 secondes 60 minutes
    [todoTask][] Moins de 2 minutes 15 minutes
    [utilisateur] [] Moins de 2 minutes 15 minutes

    1 La latence fournie pour la ressource d’alerte s’applique uniquement après la création de l’alerte. Il n’inclut pas le temps nécessaire à une règle pour créer une alerte à partir des données.

    Ressources de déploiement

    Voir aussi