Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Namespace: microsoft.graph
Wichtig
Die APIs unter der /beta Version in Microsoft Graph können sich ändern. Die Verwendung dieser APIs in Produktionsanwendungen wird nicht unterstützt. Um festzustellen, ob eine API in v1.0 verfügbar ist, verwenden Sie die Version Selektor.
Abonniert eine Listeneranwendung zum Empfangen von Änderungsbenachrichtigungen, wenn die angeforderte Art von Änderungen an der angegebenen Ressource in Microsoft Graph erfolgt.
Informationen zu den Ressourcen, für die Sie Abonnements erstellen können, und zu den Einschränkungen für Abonnements finden Sie unter Einrichten von Benachrichtigungen für Änderungen an Ressourcendaten: Unterstützte Ressourcen.
Einige Ressourcen unterstützen umfassende Benachrichtigungen, d. h. Benachrichtigungen, die Ressourcendaten enthalten. Weitere Informationen zu diesen Ressourcen finden Sie unter Einrichten von Änderungsbenachrichtigungen, die Ressourcendaten enthalten: Unterstützte Ressourcen.
Diese API ist in den folgenden nationalen Cloudbereitstellungen verfügbar.
| Weltweiter Service | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Berechtigungen
Das Erstellen eines Abonnements erfordert eine Leseberechtigung für die Ressource. Um beispielsweise Änderungsbenachrichtigungen zu Nachrichten zu erhalten, benötigt Ihre App die Mail.Read-Berechtigungen.
Abhängig von der Ressource und dem angeforderten Berechtigungstyp (delegiert oder Anwendung) ist die in der folgenden Tabelle angegebene Berechtigung die niedrigste Berechtigung, die zum Aufrufen dieser API erforderlich ist. Um mehr zu erfahren und vor der Wahl der Berechtigungen Vorsicht walten zu lassen, suchen Sie unter Berechtigungen nach den folgenden Berechtigungen.
Hinweis
- Aufgrund von Sicherheitseinschränkungen unterstützen Microsoft Graph-Abonnements keine Schreibzugriffsberechtigungen, wenn nur Lesezugriffsberechtigungen erforderlich sind.
- Einige Ressourcen unterstützen Änderungsbenachrichtigungen in mehreren Szenarien, die jeweils unterschiedliche Berechtigungen erfordern. Verwenden Sie in diesen Fällen den Ressourcenpfad, um die Szenarien zu unterscheiden.
| Unterstützte Ressource | Delegiert (Geschäfts-, Schul- oder Unikonto) | Delegiert (persönliches Microsoft-Konto) | Application |
|---|---|---|---|
aiInsights /copilot/users/{userId}/onlineMeetings/getAllAiInsights Copilot KI-Erkenntnisse aus Besprechungen, an denen ein bestimmter Benutzer beteiligt ist. |
OnlineMeetingAiInsight.Read.All | Nicht unterstützt | OnlineMeetingAiInsight.Read.All |
aiInsights /copilot/users/{userId}/onlineMeetings/{onlineMeetingId}/aiInsights Copilot KI-Erkenntnisse für eine bestimmte Besprechung. |
OnlineMeetingAiInsight.Read.All | Nicht unterstützt | OnlineMeetingAiInsight.Read.All |
aiInteraction copilot/users/{userId}/interactionHistory/getAllEnterpriseInteractions Copilot KI-Interaktionen, an denen ein bestimmter Benutzer beteiligt ist. |
AiEnterpriseInteraction.Read | Nicht unterstützt | AiEnterpriseInteraction.Read.All, AiEnterpriseInteraction.Read.User |
aiInteraction copilot/interactionHistory/getAllEnterpriseInteractions Copilot KI-Interaktionen in einer organization. |
Nicht unterstützt | Nicht unterstützt | AiEnterpriseInteraction.Read.All |
| approvalItems | Nicht unterstützt | Nicht unterstützt | ApprovalSolution.ReadWrite.All |
| callRecord | Nicht unterstützt | Nicht unterstützt | CallRecords.Read.All |
callRecording communications/onlineMeetings/getAllRecordings Jede Aufzeichnung wird im Mandanten verfügbar. |
Nicht unterstützt | Nicht unterstützt | OnlineMeetingRecording.Read.All |
callRecording communications/onlineMeetings/{onlineMeetingId}/recordings Jede Aufzeichnung wird für eine bestimmte Besprechung verfügbar. |
OnlineMeetingRecording.Read.All | Nicht unterstützt | OnlineMeetingRecording.Read.All |
callRecording users/{userId}/onlineMeetings/getAllRecordings Eine Anrufaufzeichnung, die in einer von einem bestimmten Benutzer organisierten Besprechung verfügbar wird. |
OnlineMeetingRecording.Read.All | Nicht unterstützt | OnlineMeetingRecording.Read.All |
callRecording appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings Eine Anrufaufzeichnung, die in einer Besprechung verfügbar wird, in der eine bestimmte Teams-App installiert ist. |
Nicht unterstützt | Nicht unterstützt | OnlineMeetingRecording.Read.All, OnlineMeetingRecording.Read. Chat |
callTranscript communications/onlineMeetings/getAllTranscripts Jedes Transkript wird im Mandanten verfügbar. |
Nicht unterstützt | Nicht unterstützt | OnlineMeetingTranscript.Read.All |
callTranscript communications/onlineMeetings/{onlineMeetingId}/transcripts Jedes Transkript wird für eine bestimmte Besprechung verfügbar. |
OnlineMeetingTranscript.Read.All | Nicht unterstützt | OnlineMeetingTranscript.Read.All |
callTranscript users/{userId}/onlineMeetings/getAllTranscripts Ein Anruftranskript, das in einer von einem bestimmten Benutzer organisierten Besprechung verfügbar wird. |
OnlineMeetingTranscript.Read.All | Nicht unterstützt | OnlineMeetingTranscript.Read.All |
callTranscript appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTranscripts Ein Anruftranskript, das in einer Besprechung verfügbar wird, in der eine bestimmte Teams-App installiert ist. |
Nicht unterstützt | Nicht unterstützt | OnlineMeetingTranscript.Read.All, OnlineMeetingTranscript.Read. Chat |
channel /teams/getAllChannels Alle Kanäle in einer organization. |
Nicht unterstützt | Nicht unterstützt | Channel.ReadBasic.All, ChannelSettings.Read.All |
channel /teams/{id}/channels Alle Kanäle in einem bestimmten Team in einer organization. |
Channel.ReadBasic.All, ChannelSettings.Read.All | Nicht unterstützt | Channel.ReadBasic.All, ChannelSettings.Read.All |
chat /chats Alle Chats in einer organization. |
Nicht unterstützt | Nicht unterstützt | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chat /chats/{id} Ein bestimmter Chat. |
Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Nicht unterstützt | ChatSettings.Read. Chat, ChatSettings.ReadWrite. Chat, Chat. Verwalten. Chat, Chat. ReadBasic.All, Chat. Read.All, Chat. ReadWrite.All |
chat /appCatalogs/teamsApps/{id}/installedToChats Alle Chats in einer organization, in der eine bestimmte Teams-App installiert ist. |
Nicht unterstützt | Nicht unterstützt | Chat. ReadBasic.WhereInstalled, Chat. Read.WhereInstalled, Chat. ReadWrite.WhereInstalled |
chat /users/{id}/chats Alle Chats, an denen ein bestimmter Benutzer beteiligt ist. |
Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Nicht unterstützt | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chatMessage /teams/{id}/channels/{id}/messages Alle Nachrichten und Antworten in einem bestimmten Kanal. |
ChannelMessage.Read.All, Group.Read.All, Group.ReadWrite.All | Nicht unterstützt | ChannelMessage.Read.Group, ChannelMessage.Read.All |
chatMessage /teams/getAllMessages Alle Kanalnachrichten in organization. |
Nicht unterstützt | Nicht unterstützt | ChannelMessage.Read.All |
chatMessage /chats/{id}/messages Alle Nachrichten in einem Chat. |
Chat.Read, Chat.ReadWrite | Nicht unterstützt | Chat.Read.All |
chatMessage /chats/getAllMessages Alle Chatnachrichten in einer organization. |
Nicht unterstützt | Nicht unterstützt | Chat.Read.All |
chatMessage /users/{id}/chats/getAllMessages Chat-Nachrichten für alle Chats, an denen ein bestimmter Benutzer beteiligt ist. |
Chat.Read, Chat.ReadWrite | Nicht unterstützt | Chat.Read.All, Chat.ReadWrite.All |
chatMessage /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages Chat-Nachrichten für alle Chats in einer organization, in der eine bestimmte Teams-App installiert ist. |
Nicht unterstützt | Nicht unterstützt | Chat. Read.WhereInstalled, Chat. ReadWrite.WhereInstalled |
| contact | Contacts.Read | Contacts.Read | Contacts.Read |
conversationMember /chats/getAllMembers Mitglieder aller Chats in einer organization. |
Nicht unterstützt | Nicht unterstützt | ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
conversationMember /chats/{id}/members Mitglieder eines bestimmten Chats. |
ChatMember.Read, ChatMember.ReadWrite, Chat.ReadBasic, Chat.Read, Chat.ReadWrite | Nicht unterstützt | ChatMember.Read.Chat, Chat.Manage.Chat, ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
conversationMember /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Chat-Mitglieder für alle Chats in einer organization, in der eine bestimmte Teams-App installiert ist. |
Nicht unterstützt | Nicht unterstützt | ChatMember.Read.WhereInstalled, ChatMember.ReadWrite.WhereInstalled, Chat. ReadBasic.WhereInstalled, Chat. Read.WhereInstalled, Chat. ReadWrite.WhereInstalled |
conversationMember /teams/getAllMembers Mitglieder in allen Teams in einer organization. |
Nicht unterstützt | Nicht unterstützt | TeamMember.Read.All, TeamMember.ReadWrite.All |
conversationMember /teams/{id}/members Mitglieder eines bestimmten Teams. |
TeamMember.Read.All | Nicht unterstützt | TeamMember.Read.All |
conversationMember /teams/{id}/channels/getAllMembers Mitglieder in allen privaten Kanälen eines bestimmten Teams. |
Nicht unterstützt | Nicht unterstützt | ChannelMember.Read.All |
conversationMember /teams/getAllChannels/getAllMembers |
Nicht unterstützt | Nicht unterstützt | ChannelMember.Read.All |
| driveItem (persönliche OneDrive-Umgebung eines Benutzers) | Nicht unterstützt | Files.ReadWrite | Nicht unterstützt |
| driveItem (OneDrive für Arbeit oder Schule/Uni) | Files.ReadWrite.All | Nicht unterstützt | Files.ReadWrite.All |
| event | Calendars.Read | Calendars.Read | Calendars.Read |
| group | Group.Read.All | Nicht unterstützt | Group.Read.All |
| group conversation | Group.Read.All | Nicht unterstützt | Nicht unterstützt |
Microsoft Entra Health monitoring-Warnung /reports/healthmonitoring/alerts |
HealthMonitoringAlertConfig.ReadWrite.All | Nicht unterstützt | HealthMonitoringAlertConfig.ReadWrite.All |
| list | Sites.ReadWrite.All | Nicht unterstützt | Sites.ReadWrite.All |
| message | Mail.ReadBasic, Mail.Read | Mail.ReadBasic, Mail.Read | Mail.Read |
offerShiftRequest /teams/{id}/schedule/offerShiftRequests Änderungen an einer Schichtanfrage für Angebote in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
| onlineMeeting | Nicht unterstützt | Nicht unterstützt | OnlineMeetings.Read.All, OnlineMeetings.ReadWrite.All |
openShiftChangeRequest /teams/{id}/schedule/openShiftChangeRequests Änderungen an einer offenen Schichtanfrage in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
| presence | Presence.Read.All | Nicht unterstützt | Nicht unterstützt |
| Drucker | Nicht unterstützt | Nicht unterstützt | Printer.Read.All, Printer.ReadWrite.All |
| printTaskDefinition | Nicht unterstützt | Nicht unterstützt | PrintTaskDefinition.ReadWrite.All |
| security alert | SecurityEvents.ReadWrite.All | Nicht unterstützt | SecurityEvents.ReadWrite.All |
shift /teams/{id}/schedule/shifts Änderungen an einer Schicht in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
swapShiftsChangeRequest /teams/{id}/schedule/swapShiftsChangeRequests Änderungen an einer Schichttauschanfrage in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
team /teams Alle Teams in einer organization. |
Nicht unterstützt | Nicht unterstützt | Team.ReadBasic.All, TeamSettings.Read.All |
team /teams/{id} Ein bestimmtes Team. |
Team.ReadBasic.All, TeamSettings.Read.All | Nicht unterstützt | Team.ReadBasic.All, TeamSettings.Read.All |
timeOffRequest /teams/{id}/schedule/timeOffRequests Änderungen an jeder Anforderung für arbeitsfreie Zeit in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
| todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Tasks.ReadWrite.All |
| user | User.Read.All | User.Read.All | User.Read.All |
| virtualEventWebinar | VirtualEvent.Read | Nicht unterstützt | VirtualEvent.Read.All |
| virtualEventTownhall | VirtualEvent.Read | Nicht unterstützt | VirtualEvent.Read.All |
| baseTask (veraltet) | Tasks.ReadWrite | Tasks.ReadWrite | Nicht unterstützt |
Hinweis
Für die folgenden Berechtigungen wird die ressourcenspezifische Zustimmung verwendet:
- OnlineMeetingRecording.Read. Chat
- OnlineMeetingTranscript.Read. Chat
- ChatSettings.Read.Chat
- ChatSettings.ReadWrite.Chat
- Chat.Manage.Chat
- ChannelMessage.Read.Group
- ChatMember.Read.Chat
- AiEnterpriseInteraction.Read.User
ChatMessage
chatMessage-Abonnements können so angegeben werden, dass sie Ressourcendaten enthalten (includeResourceData auf truefestgelegt). In diesem Fall ist eine Verschlüsselung erforderlich, und die Abonnementerstellung schlägt fehl, wenn für solche Abonnements kein encryptionCertificate angegeben ist.
Verwenden Sie den Prefer: include-unknown-enum-members Anforderungsheader, um die folgenden Werte in der erweiterbaren EnumerationchatMessagemessageType abzurufen: systemEventMessage for /teams/{id}/channels/{id}/messages und /chats/{id}/messages Ressource.
conversationMember
conversationMember-Abonnements können so angegeben werden, dass sie Ressourcendaten enthalten (includeResourceData auf truefestgelegt). In diesem Fall ist eine Verschlüsselung erforderlich, und die Abonnementerstellung schlägt fehl, wenn für solche Abonnements kein encryptionCertificate angegeben ist.
Team, Kanal und Chat
Team-, Kanal- und Chatabonnements können so angegeben werden, dass sie Ressourcendaten enthalten (includeResourceData auf truefestgelegt). In diesem Fall ist eine Verschlüsselung erforderlich, und die Abonnementerstellung schlägt fehl, wenn für solche Abonnements kein encryptionCertificate angegeben ist.
Sie können den Abfragezeichenfolgeparameter notifyOnUserSpecificProperties verwenden, wenn Sie Änderungen in einem bestimmten Chat oder auf Benutzerebene abonnieren. Wenn Sie den Abfragezeichenfolgenparameter notifyOnUserSpecificPropertiestrue während der Abonnementerstellung festlegen, werden zwei Arten von Nutzlasten an den Abonnenten gesendet. Ein Typ enthält benutzerspezifische Eigenschaften, der andere wird ohne diese gesendet. Weitere Informationen finden Sie unter Abrufen von Änderungsbenachrichtigungen für Chats mit Microsoft Graph.
aiInsights
Abonnements für Copilot AI Insights erfordern eine gültige Copilot-Lizenz, die den folgenden Copilot-Serviceplan umfasst:
- Microsoft 365 Copilot Chat: 3f30311c-6b1e-48a4-ab79-725b469da960
aiInteraction
Abonnements für Copilot KI-Interaktionen erfordern eine gültige Copilot-Lizenz, die den folgenden Copilot-Serviceplan umfasst:
- Microsoft 365 Copilot Chat: 3f30311c-6b1e-48a4-ab79-725b469da960
Bei Abonnements, die auf Copilot KI-Interaktionen abzielen, an denen ein bestimmter Benutzer beteiligt ist, müssen dem Benutzer im Ressourcenpfad die vorherigen Servicepläne zugewiesen sein, die sich in einem gültigen Zustand befinden.
Für Abonnements, die auf Copilot KI-Interaktionen für den gesamten Mandanten abzielen, muss der Mandant über gültige Lizenzen verfügen, die alle früheren Copilot-Servicepläne enthalten.
driveItem
Für Abonnements gelten weitere Einschränkungen für OneDrive-Elemente. Die Einschränkungen gelten für das Erstellen und Verwalten von Abonnements (das Erstellen, aktualisieren und löschen).
Auf einem persönlichen OneDrive können Sie den Stammordner oder einen beliebigen Unterordner in diesem Laufwerk abonnieren. Auf OneDrive für den Arbeitsplatz oder die Schule/Universität können Sie nur den Stammordner abonnieren. Änderungsbenachrichtigungen werden für die angeforderten Änderungen am abonnierten Ordner oder an Datei-, Ordner- oder anderen driveItem-Instanzen in seiner Hierarchie gesendet. Sie können keine Laufwerk - oder DriveItem-Instanzen abonnieren, die keine Ordner sind, wie z. B. einzelne Dateien.
OneDrive für Arbeit oder Schule und SharePoint-Unterstützung senden Ihrer Anwendung Benachrichtigungen über Sicherheitsereignisse, die auf einem driveItem auftreten. Wenn Sie diese Ereignisse abonnieren möchten, fügen Sie Ihrer Anforderung prefer:includesecuritywebhooks Kopfzeile hinzu, um ein Abonnement zu erstellen. Nachdem das Abonnement erstellt wurde, erhalten Sie Benachrichtigungen, wenn sich die Berechtigungen für ein Element ändern. Diese Kopfzeile gilt für SharePoint und OneDrive für den Arbeitsplatz oder die Schule/Uni, aber nicht für OneDrive-Heimanwenderkonten.
Kontakt, Ereignis und Nachricht
Sie können Änderungen in Outlook-Kontakt-, Ereignis- oder Nachrichtenressourcen abonnieren und optional in der POST-Anforderungsnutzlast angeben, ob verschlüsselte Ressourcendaten in Benachrichtigungen eingeschlossen werden sollen.
Das Erstellen und Verwalten (Abrufen, Aktualisieren und Löschen) eines Abonnements erfordert einen Lesebereich für die Ressource. Beispiel: Zum Erhalten von Änderungsbenachrichtigungen zu Nachrichten benötigt Ihre App die Mail.Read-Berechtigung. Outlook-Änderungsbenachrichtigungen unterstützen delegierte und Anwendungsberechtigungsbereiche. Beachten Sie die folgenden Einschränkungen:
Die delegierte Berechtigung unterstützt das Abonnieren von Objekten in Ordnern, die sich nur im Postfach des angemeldeten Benutzers befinden. Sie können z. B. die delegierte Berechtigung "Calendars.Read" nicht verwenden, um Ereignisse im Postfach eines anderen Benutzers zu abonnieren.
So abonnieren Sie Änderungsbenachrichtigungen über Outlook-Kontakte, -Ereignisse oder -Nachrichten in freigegebenen oder delegierten Ordnern:
- Verwenden Sie die entsprechende Anwendungsberechtigung, um Änderungen von Elementen in einem Ordner oder Postfach eines beliebigen Benutzers im Mandanten zu abonnieren.
- Verwenden Sie die Outlook-Freigabeberechtigungen (Contacts.Read.Shared, Calendars.Read.Shared, Mail.Read.Shared und deren Gegenstücke zum Lesen/Schreiben) nicht, da sie das Abonnieren von Änderungsbenachrichtigungen für Elemente in freigegebenen oder delegierten Ordnern nicht unterstützen.
onlineBesprechungen, Anwesenheit
Abonnements für OnlineMeetings und Präsenz erfordern die Eigenschaften encryptionCertificate und encryptionCertificateId, wenn ein Abonnement für Benachrichtigungen mit verschlüsselten Ressourcendaten erstellt wird. Weitere Informationen finden Sie unter Einrichten von Änderungsbenachrichtigungen zum Einschließen von Ressourcendaten. Ausführliche Informationen zu Abonnements für Onlinebesprechungen finden Sie unter Abrufen von Änderungsbenachrichtigungen für Onlinebesprechungen.
virtualEventWebinar und virtualEventTownhall
Abonnements für virtuelle Ereignisse unterstützen nur grundlegende Benachrichtigungen und sind auf einige wenige Entitäten eines virtuellen Ereignisses beschränkt. Weitere Informationen zu den unterstützten Abonnementtypen finden Sie unter Abrufen von Änderungsbenachrichtigungen für Updates zu virtuellen Microsoft Teams-Ereignissen.
HTTP-Anforderung
POST /subscriptions
Anforderungsheader
| Name | Typ | Beschreibung |
|---|---|---|
| Authorization | string | Bearer {token}. Erforderlich. Erfahren Sie mehr über Authentifizierung und Autorisierung. |
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung des Abonnement-Objekts an.
Antwort
Bei erfolgreicher Ausführung gibt diese Methode einen 201 Created Antwortcode und ein Abonnementobjekt im Antworttext zurück.
Weitere Informationen dazu, wie Fehler zurückgegeben werden, finden Sie unter Fehlerantworten.
Beispiel
Anforderung
Geben Sie im Anforderungstext eine JSON-Darstellung des subscription-Objekts an.
Die Felder clientState und latestSupportedTlsVersion sind optional.
Diese Anforderung erstellt ein Abonnement für Änderungsbenachrichtigungen über neue E-Mails, die vom aktuell angemeldeten Benutzer empfangen werden.
POST https://graph.microsoft.com/beta/subscriptions
Content-type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
"resource": "me/mailFolders('Inbox')/messages",
"expirationDateTime":"2016-11-20T18:23:45.9356913Z",
"clientState": "secretClientValue",
"latestSupportedTlsVersion": "v1_2"
}
Geben Sie im Anforderungstext eine JSON-Darstellung des subscription-Objekts an.
Die Felder clientState und latestSupportedTlsVersion sind optional.
Doppeltes Abonnementverhalten
Doppelte Abonnements sind nicht zulässig. Wenn eine Abonnementanforderung dieselben Werte für changeType und Ressource enthält, die ein vorhandenes Abonnement enthält, schlägt die Anforderung mit einem HTTP-Fehlercode 409 Conflictund der Fehlermeldung Subscription Id <> already exists for the requested combinationfehl.
Beispiele für Ressourcen
Die folgenden Werte sind gültige Werte für die Ressourceneigenschaft.
| Ressourcentyp | Beispiele |
|---|---|
| approvalItems | solution/approval/approvalItems |
| callRecord | communications/callRecords |
| callRecording |
communications/onlineMeetings/getAllRecordings, communications/onlineMeetings/{onlineMeetingId}/recordings, users/{userId}/onlineMeetings/getAllRecordings, appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings |
| callTranscript |
communications/onlineMeetings/getAllTranscripts, communications/onlineMeetings/{onlineMeetingId}/transcripts, users/{userId}/onlineMeetings/getAllTranscripts, appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTranscripts |
| channel |
/teams/getAllChannels, /teams/{id}/channels |
| chat |
/chats, /chats/{id} |
| chatMessage |
chats/{id}/messages, chats/getAllMessages, teams/{id}/channels/{id}/messages, teams/getAllMessages |
| contact | me/contacts |
| conversationMember |
/chats/{id}/members, /chats/getAllMembers, /teams/{id}/members, /teams/getAllMembers, /teams/{id}/channels/getAllMembers |
| driveItem | me/drive/root |
| event | me/events |
| group | groups |
| group conversation | groups('{id}')/conversations |
| Warnung zur Systemüberwachung | reports/healthmonitoring/alerts |
| list | sites/{site-id}/lists/{list-id} |
| Nachricht |
me/mailfolders('inbox')/messages, me/messages |
| onlineMeeting | /communications/onlineMeetings/?$filter=JoinWebUrl eq '{JoinWebUrl}' |
| presence |
/communications/presences/{id} (einzelner Benutzer), /communications/presences?$filter=id in ('{id}','{id}',…) (mehrere Benutzer) |
| Drucker | print/printers/{id}/jobs |
| printTaskDefinition | print/taskDefinitions/{id}/tasks |
| team |
/teams, /teams/{id} |
| user | users |
| todoTask | /me/todo/lists/{todoTaskListId}/tasks |
| security alert | security/alerts?$filter=status eq 'NewAlert' |
| baseTask (veraltet) | /me/tasks/lists/{Id}/tasks |
Hinweis
Jeder Pfad, der mit me beginnt, kann auch mit users/{id}me anstelle des aktuellen Benutzers verwendet werden.
Antwort
Das folgende Beispiel zeigt die Antwort.
Hinweis: Das hier gezeigte Antwortobjekt kann zur besseren Lesbarkeit gekürzt werden.
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#subscriptions/$entity",
"id": "7f105c7d-2dc5-4530-97cd-4e7ae6534c07",
"resource": "me/mailFolders('Inbox')/messages",
"applicationId": "24d3b144-21ae-4080-943f-7067b395b913",
"changeType": "created",
"clientState": "secretClientValue",
"notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
"expirationDateTime": "2016-11-20T18:23:45.9356913Z",
"creatorId": "8ee44408-0679-472c-bc2a-692812af3437",
"latestSupportedTlsVersion": "v1_2",
"notificationContentType": "application/json"
}
Beispiel 2: Erstellen eines Abonnements für einen Webpushendpunkt
Im folgenden Beispiel wird ein Abonnement erstellt, das verschlüsselte Änderungsbenachrichtigungen an einen browsernativen Webpushendpunkt (z. B web.push.apple.com. , fcm.googleapis.com, oder updates.push.services.mozilla.com) übermittelt.
Vor dem Erstellen dieses Abonnements muss die browserbasierte Anwendung:
- Rufen Sie die getVapidPublicKey-Funktion für die Abonnementsammlung auf, um den öffentlichen VAPID-Schlüssel von Microsoft Graph (RFC 8292) abzurufen.
- Rufen Sie
PushManager.subscribe({ applicationServerKey: <vapidPublicKey> })an, um sich beim Pushdienst des Browsers zu registrieren. Der Browser gibt einen enthaltendenPushSubscriptionendpointWert zurückp256dh, , , undauthWerte.
Die Anwendung erstellt dann das Abonnement, wobei die notificationUrl auf die bloße Push-Dienstendpunkt-URL festgelegt ist und die Eigenschaften vapidPublicKey, webPushEncryptionP256dhPublicKey und webPushEncryptionSecret auf die vom Browser zurückgegebenen Werte festgelegt sind. Nach der Erstellung verschlüsselt Microsoft Graph jede Benachrichtigung gemäß RFC 8291 mithilfe der gespeicherten Schlüssel und signiert die Anforderung mit VAPID, bevor sie an den Push-Dienst gesendet wird.
Anforderung
POST https://graph.microsoft.com/beta/subscriptions
Content-type: application/json
{
"changeType": "created,updated",
"notificationUrl": "https://web.push.apple.com/QKmFUwSBFK8g7iY4t1...",
"resource": "me/mailFolders('Inbox')/messages",
"expirationDateTime": "2026-12-31T11:00:00.0000000Z",
"clientState": "secretClientValue",
"vapidPublicKey": "BNKm...base64url-encoded-server-vapid-public-key...",
"webPushEncryptionP256dhPublicKey": "BNcR...base64url-encoded-client-public-key...",
"webPushEncryptionSecret": "tBHI...base64url-encoded-auth-secret..."
}
Hinweis: Die webPushEncryptionSecret-Eigenschaft ist schreibgeschützt. Es wird nie in
GETAntworten zurückgegeben (alsnullzurückgegeben). Behandeln Sie den Wert als Geheimnis.
Endpunktprüfung für Benachrichtigungen
Der Abonnementbenachrichtigungsendpunkt (in der notificationUrl-Eigenschaft angegeben) muss auf eine Validierungsanforderung reagieren können, wie unter Einrichten von Benachrichtigungen für Änderungen an Benutzerdaten beschrieben. Wenn die Validierung fehlschlägt, gibt die Anforderung zur Erstellung des Abonnements einen "400 Bad Request"-Fehler zurück.