Ändern von Benachrichtigungen für Microsoft Teams-Ressourcen
Änderungsbenachrichtigungen für Microsoft Teams-Ressourcen mithilfe Microsoft Graph ermöglichen es Ihnen, Änderungen (Erstellen, Aktualisieren und Löschen) einer Ressource zu abonnieren. Änderungsbenachrichtigungen bieten ein Modell mit geringer Wartezeit, da Sie sie über ein Abonnement verwalten können. Sie können auch die Ressourcendaten in den Benachrichtigungen erhalten und müssen so nicht die API aufrufen, um die Nutzlast abzurufen.
Hinweis
Die maximale Dauer eines Abonnements beträgt 60 Minuten. Abonnements können jedoch verlängert werden, bis der Aufrufer die Berechtigung für den Zugriff auf die Ressource hat.
Ändern von Benachrichtigungstypen
Microsoft Teams unterstützt zwei Arten von Änderungsbenachrichtigungen:
Änderungsbenachrichtigung, um alle Änderungen im Zusammenhang mit einer Ressource mandantenweit nachzuverfolgen: Sie können beispielsweise Änderungen in Nachrichten in jedem Kanal des Mandanten abonnieren und benachrichtigt werden, wenn eine Nachricht in einem beliebigen Kanal im Mandanten erstellt, aktualisiert oder gelöscht wird. Diese Benachrichtigungen können Lizenzierungs- und Zahlungsanforderungen aufweisen z. B. Änderungsbenachrichtigungen für Nachrichten und Mitgliedschaften.
Änderungsbenachrichtigung, um alle Änderungen im Zusammenhang mit einer bestimmten Ressource nachzuverfolgen: Sie können beispielsweise Änderungen in Nachrichten in einem bestimmten Kanal abonnieren und benachrichtigt werden, wenn eine Nachricht in diesem Kanal erstellt, aktualisiert oder gelöscht wird.
Ausführliche Informationen dazu, welche Ressourcen welche Arten von Änderungsbenachrichtigungen unterstützen, finden Sie unter Microsoft Graph Änderungsbenachrichtigungen.
Unterstützte Ressourcen
In der folgenden Tabelle sind die Microsoft Teams-Ressourcen, die Änderungsbenachrichtigungen unterstützen, und die entsprechenden Ressourcenpfade aufgeführt. Wenden Sie den Ressourcenpfad für Ihr Szenario an, wie beim Erstellen eines Abonnements angegeben. Der Typ der Ressourcenpfadnutzlast ist der Typ unter der Spalte "Ressource" oder eine Auflistung dieses Typs.
Ressource | Unterstützte Ressourcenpfade | In Benachrichtigungen können Ressourcendaten einbezogen werden |
---|---|---|
Teams channel | Änderungen an Kanälen in allen Teams:/teams/getAllChannels Änderungen am Kanal in einem bestimmten Team: /teams/{id}/channels |
Ja |
Teams Chat | Änderungen an allen Chats im Mandanten:/chats Änderungen an einem bestimmten Chat: /chats/{id} Änderungen an allen Chats im Mandanten, in denen eine bestimmte Teams-App installiert ist: /appCatalogs/teamsApps/{id}/installedToChats |
Ja |
Teams chatMessage | Änderungen an Chatnachrichten in allen Kanälen aller Teams:/teams/getAllMessages Änderungen an Chatnachrichten in einem bestimmten Kanal: /teams/{id}/channels/{id}/messages Änderungen an Chatnachrichten in allen Chats: /chats/getAllMessages Änderungen an Chatnachrichten in einem bestimmten Chat: /chats/{id}/messages Änderungen an Chatnachrichten in allen Chats, an denen ein bestimmter Benutzer teilnimmt: /users/{id}/chats/getAllMessages Änderungen an Chatnachrichten in allen Chats im Mandanten, in denen eine bestimmte Teams-App installiert ist: /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages |
Ja |
Teams conversationMember | Änderungen an der Mitgliedschaft in einem bestimmten Team:/teams/{id}/members Änderungen an der Mitgliedschaft in einem bestimmten Chat: /chats/{id}/members Änderungen an der Mitgliedschaft in allen Chats: /chats/getAllMembers Neue oder geänderte Mitglieder in allen Kanälen unter einem bestimmten Team: teams/{id}/channels/getAllMembers Änderungen an der Mitgliedschaft in allen Chats im Mandanten, in dem eine bestimmte Teams-App installiert ist: /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Änderungen an der Mitgliedschaft in allen Kanälen des Mandanten: teams/getAllChannels/getAllMembers |
Ja |
Teams team | Änderungen an allen Teams im Mandanten:/teams Änderungen an einem bestimmten Team: /teams/{id} |
Ja |
Nutzlast der Benachrichtigung
Je nach Abonnement, können Sie die Benachrichtigung entweder mit Ressourcendaten erhalten oder ohne. Wenn Sie mit Ressourcendaten abonnieren, können Sie die Nutzlast der Nachricht zusammen mit der Benachrichtigung erhalten, d. h. Sie müssen nicht mehr zurückrufen, um den Inhalt zu erhalten.
Benachrichtigungen mit Ressourcendaten
Bei Benachrichtigungen mit Ressourcendaten sieht die Nutzlast wie folgt aus. Diese Nutzlast dient für eine Benachrichtigung, die der Chatnachrichtenressource entspricht. Die tatsächliche Benachrichtigung enthält die ressource und resourceData -Eigenschaften, die die Ressource darstellen, die die Benachrichtigung ausgelöst hat.
{
"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-->>"]
}
Einzelheiten zum Validieren von Tokens und Entschlüsseln der Nutzlast finden Sie unter Änderungsbenachrichtigungen einrichten, die Ressourcendaten enthalten.
Die entschlüsselte Benachrichtigungsnutzlast sieht wie folgt aus. Die entschlüsselte Nutzlast für das vorherige Beispiel entspricht dem chatMessage- Schema. Die Nutzlast ist der von GET-Vorgängen zurückgegebenen Nutzlast ähnlich.
{
"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": []
}
Benachrichtigungen ohne Ressourcendaten
Benachrichtigungen ohne Ressourcendaten enthalten genügend Informationen, um GET-Aufrufe zu tätigen, um die Ressource zu erhalten. Abonnements für Benachrichtigungen ohne Ressourcendaten erfordern kein Verschlüsselungszertifikat (da die tatsächlichen Ressourcendaten nicht übermittelt werden).
Das Nutzlast sieht wie folgt aus. Diese Nutzlast gilt für eine Nachricht, die in einem Kanal gesendet wurde.
{
"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')"
}
}
Das vorherige Beispiel oben zeigt eine Benachrichtigung, die einer Chatnachrichtenressource entspricht. Die tatsächliche Benachrichtigung enthält die ressource und resourceData -Eigenschaften, die die Ressource darstellen, die die Benachrichtigung ausgelöst hat. Die ressource und @odata.id -Eigenschaften können verwendet werden, um Aufrufe an Microsoft Graph zu tätigen, um die Nutzlast für die Nachricht zu erhalten.
Hinweis
GET-Aufrufe geben immer den aktuellen Status der Ressource zurück. Wenn die Ressource zwischen dem Senden der Benachrichtigung und dem Abrufen der Ressource geändert wird, gibt der Vorgang die aktualisierte Ressource zurück.
Siehe auch
- Microsoft Graph-Änderungsbenachrichtigungen
- Abrufen von Änderungsbenachrichtigungen für Teams und Kanälen mithilfe von Microsoft Graph
- Abrufen von Änderungsbenachrichtigungen über Veränderungen der Mitgliedschaft in Teams und Kanälen mithilfe von Microsoft Graph
- Abrufen von Änderungsbenachrichtigungen für Nachrichten in Teams-Kanälen und -Chats mithilfe von Microsoft Graph
- Abrufen von Änderungsbenachrichtigungen für Chats mithilfe von Microsoft Graph
- Abrufen von Änderungsbenachrichtigungen für Chatmitgliedschaften mithilfe von Microsoft Graph
- Übersicht über Microsoft Teams-APIs