Subscribe-Vorgang
Der Subscribe-Vorgang wird verwendet, um Clientanwendungen für Push- oder Pullbenachrichtigungen zu abonnieren. Es ist wichtig zu beachten, dass die Struktur der Anforderungsnachrichten und -antworten je nach Art der Ereignisbenachrichtigung unterschiedlich ist.
Beispiel für eine Pullabonnementabonnement-Abonnementanforderung
Beschreibung
Das folgende Codebeispiel zeigt, wie Sie ein Pullereignisbenachrichtigungsabonnement abonnieren. Das Abonnement informiert die Clientanwendung, wenn dem Posteingang neue E-Mails hinzugefügt werden und ob ein Element aus dem Posteingang gelöscht wird. Für das Abonnement tritt ein Timeout auf, wenn der Client innerhalb von zehn Minuten keine Informationen zu Ereignissen angibt. Wenn das Abonnement abläuft, muss ein neues Abonnement eingerichtet werden, um weiterhin Benachrichtigungen anfordern zu können.
Code
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<Subscribe xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<PullSubscriptionRequest>
<t:FolderIds>
<t:DistinguishedFolderId Id="inbox"/>
</t:FolderIds>
<t:EventTypes>
<t:EventType>NewMailEvent</t:EventType>
<t:EventType>DeletedEvent</t:EventType>
</t:EventTypes>
<t:Timeout>10</t:Timeout>
</PullSubscriptionRequest>
</Subscribe>
</soap:Body>
</soap:Envelope>
Elemente der Pullabonnement-Abonnementanforderung
In der Anforderung werden folgende Elemente verwendet:
Weitere Optionen für die Anforderungsmeldung des Subscribe-Vorgangs finden Sie in der Schemahierarchie. Beginnen Sie mit dem PullSubscriptionRequest-Element .
Beispiel für eine erfolgreiche Pullabonnementabonnement-Abonnentenantwort
Beschreibung
Das folgende Beispiel zeigt eine erfolgreiche Pullabonnementantwort. Die Antwort enthält den Abonnementbezeichner und das Wasserzeichen, das zum Abrufen des Arrays von Ereignissen verwendet wird, die einem Abonnement zugeordnet sind. Der Abonnementbezeichner wird auch verwendet, um ein Abonnement für einen Client abzubestellen.
Code
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<SubscribeResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:SubscribeResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:SubscriptionId>39ea5d0f-f062-455e-a1e9-89c0304390f4</m:SubscriptionId>
<m:Watermark>AAAAAHgGAAAAAAAAAQ==</m:Watermark>
</m:SubscribeResponseMessage>
</m:ResponseMessages>
</SubscribeResponse>
</soap:Body>
</soap:Envelope>
PullAbonnement-Elemente für die Abonnementantwort
In der Antwort werden folgende Elemente verwendet:
Beispiel für eine Pullabonnementabonnement-Fehlerantwort
Beschreibung
Das folgende Beispiel zeigt eine Fehlerantwort auf eine Subscribe-Anforderung. Der Fehler wird durch den Versuch verursacht, Benachrichtigungen mithilfe des Stellvertretungszugriffs zu abonnieren.
Code
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="685" MinorBuildNumber="8"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<SubscribeResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseMessages>
<m:SubscribeResponseMessage ResponseClass="Error">
<m:MessageText>Subscriptions are not supported for delegate user access.</m:MessageText>
<m:ResponseCode>ErrorSubscriptionDelegateAccessNotSupported</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
</m:SubscribeResponseMessage>
</m:ResponseMessages>
</SubscribeResponse>
</soap:Body>
</soap:Envelope>
Elemente der Pullabonnementfehlerantwort
Folgende Elemente werden in der Fehlerantwort verwendet:
Beispiel für eine Pushabonnementanforderung
Beschreibung
Das folgende Codebeispiel zeigt, wie Sie ein Abonnement für Pushereignisbenachrichtigungen abonnieren. Die Anforderung identifiziert die zu überwachenden Ordner, die Zu überwachenden Ereignistypen, die Häufigkeit von Statusbenachrichtigungen und die URL des Clientwebdiensts, der auf die Pushbenachrichtigungen lauscht.
Code
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Body>
<Subscribe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<PushSubscriptionRequest xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<FolderIds xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<DistinguishedFolderId Id="inbox" />
</FolderIds>
<EventTypes xmlns="http://schemas.microsoft.com/exchange/services/2006/types">
<EventType>NewMailEvent</EventType>
<EventType>CopiedEvent</EventType>
<EventType>CreatedEvent</EventType>
<EventType>DeletedEvent</EventType>
<EventType>ModifiedEvent</EventType>
<EventType>MovedEvent</EventType>
</EventTypes>
<StatusFrequency xmlns="http://schemas.microsoft.com/exchange/services/2006/types">1</StatusFrequency>
<URL xmlns="http://schemas.microsoft.com/exchange/services/2006/types">http://clientWebService/Service.asmx</URL>
</PushSubscriptionRequest>
</Subscribe>
</soap:Body>
</soap:Envelope>
Kommentare
Der Clientwebdienst muss eingerichtet werden, bevor die Abonnementanforderung für Pushbenachrichtigungen gesendet wird. Andernfalls wird die erste Benachrichtigung nicht an einen gültigen Endpunkt gesendet, und die Pushbenachrichtigung schlägt fehl. Weitere Informationen finden Sie unter Beispielanwendung für Pushbenachrichtigungen.
Beim erneuten Abonnieren wird eine neue SubscriptionId (GetEvents) erstellt. Verwenden Sie das Wasserzeichen eines vorherigen Abonnements, um an dem Punkt, an dem das vorherige Abonnement beendet wurde, erneut zu abonnieren.
Elemente der Pushabonnementanforderung
In der Anforderung werden folgende Elemente verwendet:
Beispiel für eine erfolgreiche Pushabonnementantwort
Beschreibung
Das folgende Beispiel zeigt eine erfolgreiche Pushabonnementantwort.
Code
<?xml version="1.0" encoding="utf-8" ?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8" MinorVersion="0" MajorBuildNumber="628" MinorBuildNumber="0"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<SubscribeResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ResponseMessages>
<SubscribeResponseMessage ResponseClass="Success">
<ResponseCode>NoError</ResponseCode>
<SubscriptionId>83826921-afdf-48be-b469-628cc02b5f49</SubscriptionId>
<Watermark>AQAAAOpvG0LURVdOhQkPOWZLPcI8EgAAAAAAAAE=</Watermark>
</SubscribeResponseMessage>
</ResponseMessages>
</SubscribeResponse>
</soap:Body>
</soap:Envelope>
Pushabonnement-Antwortelemente
In der Antwort werden folgende Elemente verwendet: