Abonnement erstellen
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 die Einschränkungen für Abonnements finden Sie unter Einrichten von Benachrichtigungen für Änderungen an Ressourcendaten: Unterstützte Ressourcen.
Einige Ressourcen unterstützen umfangreiche 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.
Globaler Dienst | US Government L4 | US Government L5 (DOD) | China, betrieben von 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Berechtigungen
Zum Erstellen eines Abonnements ist die Leseberechtigung für die Ressource erforderlich. Um beispielsweise Änderungsbenachrichtigungen für Nachrichten zu erhalten, benötigt Ihre App die Berechtigungen Mail.Read.
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, von denen jedes unterschiedliche Berechtigungen erfordert. 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) | Anwendung |
---|---|---|---|
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 Besprechung verfügbar wird, die von einem bestimmten Benutzer organisiert 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 Besprechung verfügbar wird, die von einem bestimmten Benutzer organisiert 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 Organisation. |
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 Organisation. |
Channel.ReadBasic.All, ChannelSettings.Read.All | Nicht unterstützt | Channel.ReadBasic.All, ChannelSettings.Read.All |
chat /chats Alle Chats in einer Organisation. |
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.Manage.Chat, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chat /appCatalogs/teamsApps/{id}/installedToChats Alle Chats in einer Organisation, 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 der Organisation. |
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 Organisation. |
Nicht unterstützt | Nicht unterstützt | Chat.Read.All |
chatMessage /users/{id}/chats/getAllMessages Chatnachrichten für alle Chats, zu der ein bestimmter Benutzer gehört. |
Chat.Read, Chat.ReadWrite | Nicht unterstützt | Chat.Read.All, Chat.ReadWrite.All |
chatMessage /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages Chatnachrichten für alle Chats in einer Organisation, 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 Organisation. |
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 Chatmitglieder für alle Chats in einer Organisation, 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 Organisation. |
Nicht unterstützt | Nicht unterstützt | TeamMember.Read.All, TeamMember.ReadWrite.All |
conversationMember /teams/{id}/members Mitglieder in einem bestimmten Team. |
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) | 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 |
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 Angebotsverschiebungsanforderung 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 allen offenen Schichtanforderungen 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 jeder Verschiebung 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 allen Verschiebungsanforderungen in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
team /teams Alle Teams in einer Organisation. |
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 einer Anforderung für eine ausserplanende Zeit in einem Team. |
Schedule.Read.All, Schedule.ReadWrite.All | Nicht unterstützt | Schedule.Read.All, Schedule.ReadWrite.All |
todoTask | Tasks.ReadWrite | Tasks.ReadWrite | Nicht unterstützt |
user | User.Read.All | User.Read.All | User.Read.All |
virtualEventWebinar | VirtualEvent.Read | Nicht unterstützt | VirtualEvent.Read.All |
baseTask (veraltet) | Tasks.ReadWrite | Tasks.ReadWrite | Nicht unterstützt |
Hinweis
Für die folgenden Berechtigungen wird eine ressourcenspezifische Zustimmung verwendet:
- OnlineMeetingRecording.Read.Chat
- OnlineMeetingTranscript.Read.Chat
- ChatSettings.Read.Chat
- ChatSettings.ReadWrite.Chat
- Chat.Manage.Chat
- ChannelMessage.Read.Group
- ChatMember.Read.Chat
ChatMessage
chatMessage-Abonnements können angegeben werden, um Ressourcendaten einzuschließen. Wenn angegeben wird, dass Ressourcendaten eingeschlossen werden sollen (includeResourceData festgelegt auf true
), ist eine Verschlüsselung erforderlich. Die Abonnementerstellung schlägt fehl, wenn für solche Abonnements kein encryptionCertificate angegeben ist.
Sie müssen den Anforderungsheader Prefer: include-unknown-enum-members
verwenden, um die folgenden Werte in chatMessagemessageTypeevolvable enum abzurufen: systemEventMessage
for /teams/{id}/channels/{id}/messages
und /chats/{id}/messages
resource.
Hinweis
/teams/getAllMessages
, /chats/getAllMessages
, /me/chats/getAllMessages
, /users/{id}/chats/getAllMessages
und /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
sind getaktete APIs. Zahlungsmodelle und Lizenzierungsanforderungen können gelten.
/teams/getAllMessages
und /chats/getAllMessages
unterstützen sowohl als auch model=A
die model=B
Zahlungsmodelle , /me/chats/getAllMessages
/users/{id}/chats/getAllMessages
und /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
unterstützen nur model=B
.
Wenn Sie in Ihrer Abfrage kein Zahlungsmodell angeben, wird der Standardauswertungsmodus verwendet.
Hinweis
Um ein Zahlungsmodell für eine abonnierte Ressource einer Änderungsbenachrichtigung hinzuzufügen oder zu ändern, müssen Sie ein neues Abonnement für Änderungsbenachrichtigungen mit dem neuen Zahlungsmodell erstellen. Das Aktualisieren einer vorhandenen Änderungsbenachrichtigung funktioniert nicht.
conversationMember
conversationMember-Abonnements können so angegeben werden, dass sie Ressourcendaten enthalten. Wenn angegeben wird, dass Ressourcendaten eingeschlossen werden sollen (includeResourceData festgelegt auf true
), ist eine Verschlüsselung erforderlich. Die Abonnementerstellung schlägt fehl, wenn kein encryptionCertificate angegeben ist.
Hinweis
/teams/getAllMembers
, /chats/getAllMembers
und /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers
sind getaktete APIs. Zahlungsmodelle und Lizenzierungsanforderungen können gelten.
/teams/getAllMembers
und /chats/getAllMembers
unterstützen sowohl als model=B
auch model=A
zahlungsmodelle.
/appCatalogs/teamsApps/{id}/installedToChats/getAllMembers
unterstützt nur model=B
.
Wenn Sie in Ihrer Abfrage kein Zahlungsmodell angeben, wird der Standardauswertungsmodus verwendet.
Hinweis
Um ein Zahlungsmodell für eine abonnierte Ressource einer Änderungsbenachrichtigung hinzuzufügen oder zu ändern, müssen Sie ein neues Abonnement für Änderungsbenachrichtigungen mit dem neuen Zahlungsmodell erstellen. Das Aktualisieren einer vorhandenen Änderungsbenachrichtigung funktioniert nicht.
Team, Kanal und Chat
Team-, Kanal- und Chatabonnements können so angegeben werden, dass sie Ressourcendaten enthalten. Wenn angegeben wird, dass Ressourcendaten eingeschlossen werden sollen (includeResourceData festgelegt auf true
), ist eine Verschlüsselung erforderlich. Die Abonnementerstellung schlägt fehl, wenn kein encryptionCertificate angegeben ist.
Sie können den Abfragezeichenfolgenparameter notifyOnUserSpecificProperties verwenden, wenn Sie Änderungen in einem bestimmten Chat oder auf Benutzerebene abonnieren. Wenn Sie den Abfragezeichenfolgenparameter notifyOnUserSpecificProperties während der Abonnementerstellung auf true
festlegen, werden zwei Arten von Nutzlasten an den Abonnenten gesendet. Ein Typ enthält benutzerspezifische Eigenschaften, der andere wird ohne sie gesendet. Weitere Informationen finden Sie unter Abrufen von Änderungsbenachrichtigungen für Chats mit Microsoft Graph.
Hinweis
/appCatalogs/teamsApps/{id}/installedToChats
verfügt über Lizenzierungs- und Zahlungsanforderungen, die speziell nur model=B
unterstützt werden.
Wenn kein Modell angegeben ist, wird der Auswertungsmodus verwendet.
Hinweis
Um ein Zahlungsmodell für eine abonnierte Ressource einer Änderungsbenachrichtigung hinzuzufügen oder zu ändern, müssen Sie ein neues Abonnement für Änderungsbenachrichtigungen mit dem neuen Zahlungsmodell erstellen. Das Aktualisieren einer vorhandenen Änderungsbenachrichtigung funktioniert nicht.
Anforderungsbeispiel
Geben Sie den model
Abfrageparameter in der Ressourcen- Eigenschaft im Anforderungstext an.
POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json
{
"changeType": "created",
"notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
"resource": "chats/getAllMessages?model=A",
"expirationDateTime":"2016-11-20T18:23:45.9356913Z",
"clientState": "secretClientValue",
"latestSupportedTlsVersion": "v1_2"
}
driveItem
Für Abonnements auf OneDrive-Elementen gelten weitere Einschränkungen. 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 Arbeit oder Schule können Sie nur den Stammordner abonnieren. Änderungsbenachrichtigungen werden für die angeforderten Änderungen am abonnierten Ordner oder einer beliebigen Datei, eines Ordners oder einer anderen driveItem-Instanz in seiner Hierarchie gesendet. Sie können keine drive- oder driveItem-Instanzen abonnieren, die keine Ordner sind, z. B. einzelne Dateien.
OneDrive für Geschäfts-, Schul- oder Unikonten und SharePoint unterstützen das Senden von Anwendungsbenachrichtigungen ü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 Geschäfts-, Schul- oder Unikonten, aber nicht für OneDrive-Konten für Verbraucher.
Kontakt, Ereignis und Nachricht
Sie können Änderungen an 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. Beispielsweise können Sie 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 nicht die Outlook-Freigabeberechtigungen (Contacts.Read.Shared, Calendars.Read.Shared, Mail.Read.Shared und deren Entsprechungen mit Lese-/Schreibzugriff), da sie das Abonnieren von Änderungsbenachrichtigungen für Elemente in freigegebenen oder delegierten Ordnern nicht unterstützen.
onlineMeetings, Anwesenheit
Abonnements in onlineMeetings und Anwesenheit erfordern die Eigenschaft encryptionCertificate und encryptionCertificateId , wenn Sie ein Abonnement für Benachrichtigungen mit verschlüsselten Ressourcendaten erstellen. Weitere Informationen finden Sie unter Einrichten von Änderungsbenachrichtigungen zum Einschließen von Ressourcendaten. Ausführliche Informationen zu Onlinebesprechungsabonnements finden Sie unter Abrufen von Änderungsbenachrichtigungen für Onlinebesprechungen.
virtualEventWebinar
Abonnements für virtuelle Ereignisse unterstützen nur grundlegende Benachrichtigungen und sind auf einige Entitäten eines virtuellen Ereignisses beschränkt. Weitere Informationen zu den unterstützten Abonnementtypen finden Sie unter Abrufen von Änderungsbenachrichtigungen für Updates virtueller Microsoft Teams-Ereignisse.
HTTP-Anforderung
POST /subscriptions
Anforderungsheader
Name | Typ | Beschreibung |
---|---|---|
Authorization | string | Bearer {token}. Erforderlich. Erfahren Sie mehr über die Authentifizierung und Autorisierung. |
Anforderungstext
Geben Sie im Anforderungstext eine JSON-Darstellung des Abonnement-Objekts an.
Antwort
Bei erfolgreicher Ausführung gibt die 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.
Verhalten von doppelten Abonnements
Doppelte Abonnements sind nicht zulässig. Wenn eine Abonnementanforderung die gleichen Werte für changeType und die Ressource enthält, die ein vorhandenes Abonnement enthält, schlägt die Anforderung mit einem HTTP-Fehlercode 409 Conflict
und der Fehlermeldung Subscription Id <> already exists for the requested combination
fehl.
Beispiele für Ressourcen
Im Folgenden sind gültige Werte für die Ressourceneigenschaft aufgeführt.
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 |
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}
anstelle von me
verwendet werden, um einen bestimmten Benutzer anstelle des aktuellen Benutzers als Ziel zu verwenden.
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"
}
Endpunktprüfung für Benachrichtigungen
Der Abonnementbenachrichtigungsendpunkt (angegeben in der notificationUrl-Eigenschaft ) 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.