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="https://schemas.microsoft.com/exchange/services/2006/types">
  <soap:Body>
    <Subscribe xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <SubscribeResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
                       xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <SubscribeResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
                       xmlns="https://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="https://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="https://schemas.microsoft.com/exchange/services/2006/messages">
        <FolderIds xmlns="https://schemas.microsoft.com/exchange/services/2006/types">
          <DistinguishedFolderId Id="inbox" />
        </FolderIds>
        <EventTypes xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/types">1</StatusFrequency>
        <URL xmlns="https://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="https://schemas.microsoft.com/exchange/services/2006/types" />
  </soap:Header>
  <soap:Body>
    <SubscribeResponse xmlns:m="https://schemas.microsoft.com/exchange/services/2006/messages" 
                       xmlns:t="https://schemas.microsoft.com/exchange/services/2006/types" 
                       xmlns="https://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:

Siehe auch

Vorgang des Kündigens von Abonnements

GetEvents-Vorgang

Verwenden von Pullabonnements

Beispielanwendung für Pushbenachrichtigungen