Notifications de modifications pour les ressources Microsoft Teams à l’aide des ressources Microsoft Graph
Les notifications de modification pour les ressources Microsoft Teams à l’aide de Microsoft Graph vous permettent de vous abonner aux modifications (créer, mettre à jour et supprimer) d’une ressource. Les notifications de modification vous offrent un modèle à faible latence en vous permettant de conserver un abonnement. Vous pouvez également obtenir les données de ressource dans les notifications et ainsi éviter d’appeler l’API pour obtenir la charge utile.
Notes
La durée maximale pendant laquelle un abonnement peut durer est de 60 minutes ; Toutefois, les abonnements peuvent être renouvelés jusqu’à ce que l’appelant dispose des autorisations nécessaires pour accéder à la ressource.
Exemple de types de notification
Microsoft Teams prend en charge deux types de notifications de modifications :
Notification de modification pour suivre toutes les modifications liées à une ressource dans le locataire : Par exemple, vous pouvez vous abonner aux modifications apportées aux messages dans n’importe quel canal du locataire et être averti chaque fois qu’un message est créé, mis à jour ou supprimé dans n’importe quel canal du locataire. Ces notifications peuvent avoir des exigences de licence et de paiement, telles que des notifications de modification pour les messages et l’appartenance.
Notification de modification pour suivre toutes les modifications apportées à une ressource spécifique : Par exemple, vous pouvez vous abonner aux modifications apportées aux messages dans un canal particulier et être averti chaque fois qu’un message est créé, mis à jour ou supprimé dans ce canal.
Pour obtenir des détails sur les types de notifications de modifications pris en charge par ressource, voir Notifications de modifications Microsoft Graph.
Ressources prises en charge
Le tableau suivant répertorie les ressources Microsoft Teams et les chemins de ressources correspondants qui sont actuellement pris en charge.
Ressources | Chemins d'accès aux ressources pris en charge | Les données de ressources peuvent être incluses dans les notifications |
---|---|---|
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 |
Oui |
Conversation Teams | Modifications à n’importe quelle conversation dans le locataire :/chats Modification d’un utilisateur spécifique : /chats/{id} |
Oui |
chatmessage Teams | Modification des messages de conversation dans tous les canaux de toutes les équipes :/teams/getAllMessages Modification des messages de conversation dans un canal spécifique : /teams/{id}/channels/{id}/messages Modification des messages de conversation dans toutes les conversations : /chats/getAllMessages Modification des messages de conversation dans une conversation spécifique : /chats/{id}/messages Les modifications apportées aux messages de conversation dans toutes les conversations d’un utilisateur particulier font partie des éléments suivants : /users/{id}/chats/getAllMessages |
Oui |
conversationMember Teams | Modifications apportées à l’appartenance d’une équipe spécifique :/teams/{id}/members Modifications apportées à l’appartenance d’une conversation spécifique : /chats/{id}/members Modifications apportées à l’appartenance de toutes les conversations : /chats/getAllMembers Modifications apportées à l’appartenance de tous les canaux d’une équipe spécifique : teams/{id}/channels/getAllMembers |
Oui |
Équipe Teams | Modifications apportées à n’importe quelle équipe du locataire :/teams Modification à un utilisateur spécifique : /teams/{id} |
Oui |
Charges utiles de notification
En fonction de votre abonnement, vous pouvez recevoir la notification avec ou sans les données de ressource. L’abonnement avec des données de ressource vous permet d’obtenir la charge utile du message ainsi que la notification, ce qui supprime la nécessité de rappeler pour obtenir le contenu.
Notifications avec des données de ressource
Pour les notifications avec des données de ressource, la charge utile se présente comme suit. Cette charge utile concerne une notification correspondant à la ressource de message de conversation. La notification réelle inclut les propriétés ressource et resourceData qui représentent la ressource qui a déclenché la notification.
{
"value": [{
"subscriptionId": "10493aa0-4d29-4df5-bc0c-ef742cc6cd7f",
"changeType": "created",
"clientState": "<<--SpecifiedClientState-->>",
"subscriptionExpirationDateTime": "2021-02-02T10:30:34.9097561-08:00",
"resource": "chats('19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces')/messages('1612289765949')",
"resourceData": {
"id": "1612289765949",
"@odata.type": "#Microsoft.Graph.chatMessage",
"@odata.id": "chats('19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces')/messages('1612289765949')"
},
"encryptedContent": {
"data": "<<--EncryptedContent-->",
"dataKey": "<<--EnryptedDataKeyUsedForEncryptingContent-->>",
"encryptionCertificateId": "<<--IdOfTheCertificateUsedForEncryptingDataKey-->>",
"encryptionCertificateThumbprint": "<<--ThumbprintOfTheCertificateUsedForEncryptingDataKey-->>"
},
"tenantId": "<<--TenantForWhichNotificationWasSent-->>"
}],
"validationTokens": ["<<--ValidationTokens-->>"]
}
Pour plus d’informations sur la validation des jetons et le déchiffrement de la charge utile, consultez Configurer des notifications de modification comprenant des données de ressource.
La charge utile de la notification déchiffrée se présente comme suit. La charge utile déchiffrée de l’exemple précédent est conforme au schéma chatMessage. La charge utile est similaire à celle renvoyée par les opérations GET.
{
"id": "1612289992105",
"replyToId": null,
"etag": "1612289992105",
"messageType": "message",
"createdDateTime": "2021-02-02T18:19:52Z",
"lastModifiedDateTime": "2021-02-02T18:19:52.105Z",
"lastEditedDateTime": null,
"deletedDateTime": null,
"subject": null,
"summary": null,
"chatId": "19:8ea0e38b-efb3-4757-924a-5f94061cf8c2_97f62344-57dc-409c-88ad-c4af14158ff5@unq.gbl.spaces",
"importance": "normal",
"locale": "en-us",
"webUrl": null,
"from": {
"application": null,
"device": null,
"user": {
"id": "8ea0e38b-efb3-4757-924a-5f94061cf8c2",
"displayName": "Ramjot Singh",
"userIdentityType": "aadUser"
},
"conversation": null
},
"body": {
"contentType": "text",
"content": "test"
},
"channelIdentity": null,
"attachments": [],
"mentions": [],
"policyViolation": null,
"reactions": [],
"replies": [],
"hostedContents": []
}
Notifications sans les données de ressource
Les notifications sans les données de ressource vous donnent suffisamment d’informations pour passer des appels GET pour obtenir la ressource. Les abonnements aux notifications sans les données de ressource ne nécessitent pas de certificat de chiffrement (car les données de ressources réelles ne sont pas transmises).
La charge utile se présente comme suit. Cette charge utile concerne un message envoyé dans un canal.
{
"subscriptionId": "9f9d1ed0-c9cc-42e7-8d80-a7fc4b0cda3c",
"changeType": "created",
"tenantId": "<<--TenantForWhichNotificationWasSent-->>",
"clientState": "<<--SpecifiedClientState-->>",
"subscriptionExpirationDateTime": "2021-02-02T11:26:41.0537895-08:00",
"resource": "teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2')/messages('1612293113399')",
"resourceData": {
"id": "1612293113399",
"@odata.type": "#Microsoft.Graph.chatMessage",
"@odata.id": "teams('fbe2bf47-16c8-47cf-b4a5-4b9b187c508b')/channels('19:4a95f7d8db4c4e7fae857bcebe0623e6@thread.tacv2')/messages('1612293113399')"
}
}
L’exemple précédent ci-dessus présente une notification qui correspond à une ressource de message de conversation. La notification réelle inclut les propriétés ressource et resourceData qui représentent la ressource qui a déclenché la notification. Les propriétés de Ressource et @odata.id peuvent être utilisées pour effectuer des appels vers Microsoft Graph afin d’obtenir la charge utile de la ressource.
Notes
Les appels GET retournent toujours l’état actuel de la ressource. Si la ressource est modifiée entre le moment où la notification est envoyée et le moment où la ressource est récupérée, l’opération retourne la ressource mise à jour.
Voir aussi
Commentaires
Envoyer et afficher des commentaires pour