Opération d’abonnement

L’opération d’abonnement est utilisée pour abonner les applications clientes aux notifications Push ou Pull. Il est important de savoir que la structure des messages de demande et des réponses est différente selon le type de notification d’événement.

Exemple de demande d’abonnement par extraction

Description

L’exemple de code suivant montre comment s’abonner à un abonnement à une notification d’événement par extraction. L’abonnement informe l’application cliente si un nouveau courrier est ajouté à la boîte de réception et si un élément est supprimé de la boîte de réception. L’abonnement expire si le client ne demande pas d’informations sur les événements dans les dix minutes. Si l’abonnement expire, un nouvel abonnement doit être établi pour continuer à demander des notifications.

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>

Éléments de demande d’abonnement par extraction

Les éléments suivants sont utilisés dans la demande :

Pour trouver d’autres options pour le message de demande de l’opération d’abonnement, explorez la hiérarchie du schéma. Commencez par l’élément PullSubscriptionRequest .

Exemple de réponse d’abonnement par extraction réussie

Description

L’exemple suivant montre une réponse d’abonnement par extraction réussie. La réponse contient l’identificateur d’abonnement et le filigrane utilisés pour obtenir le tableau des événements associés à un abonnement. L’identificateur d’abonnement est également utilisé pour désinscrire un client d’un abonnement.

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>

Éléments de réponse d’abonnement par extraction

Les éléments suivants sont utilisés dans la réponse :

Exemple de réponse d’erreur d’abonnement par extraction

Description

L’exemple suivant montre une réponse d’erreur à une demande d’abonnement. L’erreur est due à une tentative de s’abonner aux notifications à l’aide de l’accès délégué.

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>

Éléments de réponse d’erreur d’abonnement par extraction

Les éléments suivants sont utilisés dans la réponse d'erreur :

Exemple de demande d’abonnement Push

Description

L’exemple de code suivant montre comment s’abonner à un abonnement aux notifications d’événements Push. La requête identifie les dossiers à surveiller, les types d’événements à surveiller, la fréquence des notifications d’état et l’URL du service Web client qui écoute les notifications Push.

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>

Comments

Le service web client doit être configuré avant l’envoi de la demande d’abonnement aux notifications Push . sinon, la première notification n’est pas envoyée à un point de terminaison valide et la notification Push échoue. Pour plus d’informations, consultez Exemple d’application de notification Push.

Un nouvel SubscriptionId (GetEvents) est créé lorsque vous vous réinscrivez. Utilisez le filigrane d’un abonnement précédent pour vous réinscrire au point où l’abonnement précédent s’est terminé.

Éléments de demande d’abonnement push

Les éléments suivants sont utilisés dans la demande :

Exemple de réponse d’abonnement Push réussie

Description

L’exemple suivant montre une réponse d’abonnement push réussie.

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>

Éléments de réponse d’abonnement Push

Les éléments suivants sont utilisés dans la réponse :

Voir aussi

Opération de résiliation d'abonnement

Opération de GetEvents

Utilisation d’abonnements par extraction de données

Exemple d'application de notification Push