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 d’une ressource (créer, mettre à jour et supprimer). Les notifications de modification fournissent un modèle à faible latence, ce qui vous permet de maintenir un abonnement. Vous pouvez également obtenir les données de ressource dans les notifications et éviter d’appeler l’API pour obtenir la charge utile.
Remarque
La durée maximale d’un abonnement est de 60 minutes. Toutefois, les abonnements peuvent être renouvelés jusqu’à ce que l’appelant ait l’autorisation d’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 pour une ressource spécifique : Par exemple, vous pouvez vous abonner aux modifications apportées aux messages dans un canal particulier et recevoir une notification chaque fois qu’un message est créé, mis à jour ou supprimé.
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 qui prennent en charge les notifications de modification et leurs chemins de ressources correspondants. Appliquez le chemin d’accès aux ressources pour votre scénario comme spécifié lors de la création d’un abonnement. Le type de la charge utile du chemin de ressource est le type sous la colonne « Ressource » ou une collection de ce type.
Remarque
Les abonnements aux ressources marqués avec un astérisque (*
) sont uniquement disponibles sur le point de /beta
terminaison.
Ressources | Chemins d'accès aux ressources pris en charge | Les données de ressources peuvent être incluses dans les notifications |
---|---|---|
CallRecording Teams | Tous les enregistrements d’un organization :communications/onlineMeetings/getAllRecordings Tous les enregistrements d’une réunion spécifique : communications/onlineMeetings/{onlineMeetingId}/recordings Enregistrement d’appel qui devient disponible dans une réunion organisée par un utilisateur spécifique : users/{userId}/onlineMeetings/getAllRecordings Enregistrement d’appel qui devient disponible dans une réunion où une application Teams particulière est installée : appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings * |
Oui |
Teams callTranscript | Toutes les transcriptions d’un organization :communications/onlineMeetings/getAllTranscripts Toutes les transcriptions d’une réunion spécifique : communications/onlineMeetings/{onlineMeetingId}/transcripts Transcription d’appel qui devient disponible dans une réunion organisée par un utilisateur spécifique : users/{userId}/onlineMeetings/getAllTranscripts Transcription d’appel qui devient disponible dans une réunion où une application Teams particulière est installée : appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTrancripts * |
Oui |
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} Modifications apportées à toute conversation dans le locataire où une application Teams particulière est installée : /appCatalogs/teamsApps/{id}/installedToChats |
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 Modifications apportées aux messages de conversation dans toutes les conversations du locataire où une application Teams particulière est installée : /appCatalogs/teamsApps/{id}/installedToChats/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 Modifications apportées à l’appartenance à toutes les conversations dans le locataire où une application Teams particulière est installée : /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Modifications apportées à l’appartenance à tous les canaux sur le locataire : teams/getAllChannels/getAllMembers |
Oui |
Équipe Teams | Modifications apportées à n’importe quelle équipe du locataire :/teams Modification à un utilisateur spécifique : /teams/{id} |
Oui |
Teams TeamsAppInstallation | Modifications lorsqu’une application Teams particulière est installée, mise à niveau ou supprimée :/appCatalogs/teamsApps/{teams-app-id}/installations |
Oui |
Charges utiles de notification
Vous pouvez obtenir la notification avec ou sans données de ressource, en fonction de votre abonnement. L’abonnement aux données de ressource vous permet d’obtenir la charge utile du message et la notification, ce qui élimine la nécessité de rappeler et d’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 qui incluent des données de ressources.
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 données de ressource ne nécessitent pas de certificat de chiffrement (car les données de ressource réelles ne sont pas envoyées).
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 montre une notification correspondant à 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.
Remarque
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.
Contenu connexe
- Notifications de modifications Microsoft Graph
- Recevez les notifications de modifications pour les équipes et les canaux à l’aide de Microsoft Graph
- Obtenir des notifications de modification pour les changements d’appartenance dans les équipes et les canaux à l’aide de Microsoft Graph
- Recevez les notifications de modifications des messages de canaux et de conversations Teams à l’aide de Microsoft Graph
- Recevoir des notifications de modification pour les conversations à l’aide de Microsoft Graph
- Recevoir des notifications de modifications de l’appartenance à une conversation à l’aide de Microsoft Graph
- Présentation de l’API Microsoft Teams
- Recevoir une notification de modification pour les transcriptions et les enregistrements de réunion à l’aide de Microsoft Graph