Operación subscribeSubscribe operation

La operación subscribe se usa para suscribir las aplicaciones cliente a las notificaciones de inserción o extracción.The Subscribe operation is used to subscribe client applications to either push or pull notifications. Es importante tener en cuenta que la estructura de los mensajes y respuestas de la solicitud es diferente en función del tipo de notificación de eventos.It is important to be aware that the structure of the request messages and responses is different depending on the type of event notification.

Ejemplo de solicitud subscribe de suscripción de extracciónPull Subscription Subscribe request example

DescriptionDescription

En el ejemplo de código siguiente se muestra cómo suscribirse a una suscripción de notificación de evento de extracción.The following code example shows how to subscribe to a pull event notification subscription. La suscripción informa a la aplicación cliente si se agrega correo nuevo a la bandeja de entrada y si un elemento se elimina de la bandeja de entrada.The subscription informs the client application if new mail is added to the Inbox and if an item is deleted from the Inbox. Se agotará el tiempo de espera de la suscripción si el cliente no solicita información sobre los eventos en 10 minutos.The subscription will time out if the client does not request information about events within ten minutes. Si la suscripción expira, se debe establecer una nueva suscripción para seguir solicitando notificaciones.If the subscription expires, a new subscription must be established to continue to request notifications.

CódigoCode

<?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>

Elementos de solicitud subscribe de suscripción de extracciónPull Subscription Subscribe Request Elements

Los siguientes elementos se usan en la solicitud:The following elements are used in the request:

Para buscar otras opciones para el mensaje de solicitud de la operación de suscripción, explore la jerarquía del esquema.To find other options for the request message of the Subscribe operation, explore the schema hierarchy. Empiece en el elemento PullSubscriptionRequest .Start at the PullSubscriptionRequest element.

Ejemplo de respuesta de suscripción de suscripción de extracción correctaSuccessful Pull Subscription Subscribe response example

DescriptionDescription

En el ejemplo siguiente se muestra una respuesta de suscripción de extracción correcta.The following example shows a successful pull subscription response. La respuesta contiene el identificador y la marca de agua de la suscripción que se usa para obtener la matriz de eventos asociados a una suscripción.The response contains the subscription identifier and watermark that is used to get the array of events that are associated with a subscription. El identificador de suscripción también se usa para cancelar la suscripción de un cliente desde una suscripción.The subscription identifier is also used to unsubscribe a client from a subscription.

CódigoCode

<?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>

Elementos de respuesta subscribe de suscripción de extracciónPull Subscription Subscribe response elements

En la respuesta se usan los siguientes elementos:The following elements are used in the response:

Ejemplo de respuesta de error suscribirse a suscripción de extracciónPull Subscription Subscribe Error response example

DescriptionDescription

En el ejemplo siguiente se muestra una respuesta de error a una solicitud subscribe.The following example shows an error response to a Subscribe request. El error se produce al intentar suscribirse a las notificaciones mediante el acceso delegado.The error is caused by an attempt to subscribe to notifications by using delegate access.

CódigoCode

<?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>

Elementos de respuesta de error de suscripción de extracciónPull Subscription Error response elements

Los siguientes elementos se usan en la respuesta de error:The following elements are used in the error response:

Ejemplo de solicitud de suscripción de inserciónPush Subscription request example

DescriptionDescription

En el ejemplo de código siguiente se muestra cómo suscribirse a una suscripción de notificación de evento de inserción.The following code example shows how to subscribe to a push event notification subscription. La solicitud identifica las carpetas que se van a supervisar, los tipos de eventos que se van a supervisar, la frecuencia de las notificaciones de estado y la dirección URL del servicio Web de cliente que escucha las notificaciones de inserción.The request identifies the folders to monitor, the types of events to monitor, the frequency of status notifications, and the URL of the client Web service that listens for the push notifications.

CódigoCode

<?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>

ComentariosComments

El servicio Web de cliente debe estar configurado antes de que se envíe la solicitud subscribe de notificaciones de inserción; de lo contrario, la primera notificación no se enviará a un extremo válido y se producirá un error en la notificación de inserción.The client Web service must be set up before the push notification subscribe request is sent; otherwise, the first notification will not be sent to a valid endpoint and the push notification will fail. Para obtener más información, vea aplicación de ejemplo de notificación de inserción.For more information, see Push Notification Sample Application.

Se crea un nuevo SubscriptionId (GetEvents) cuando se resuscribe.A new SubscriptionId (GetEvents) is created when you resubscribe. Use la marca de agua de una suscripción anterior para resuscribirse en el punto en el que finalizó la suscripción anterior.Use the watermark of a previous subscription to resubscribe at the point where the previous subscription ended.

Elementos de solicitud de suscripción de inserciónPush Subscription Request Elements

Los siguientes elementos se usan en la solicitud:The following elements are used in the request:

Ejemplo de respuesta de suscripción de inserción correctaSuccessful Push Subscription response example

DescriptionDescription

En el ejemplo siguiente se muestra una respuesta de suscripción de inserción correcta.The following example shows a successful push subscription response.

CódigoCode

<?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>

Elementos de respuesta de suscripción de inserciónPush Subscription response elements

En la respuesta se usan los siguientes elementos:The following elements are used in the response:

Vea tambiénSee also

Operación unsubscribeUnsubscribe operation

Operación GetEventsGetEvents operation

Uso de suscripciones de extracciónUsing Pull Subscriptions

Aplicación de ejemplo de notificación de inserciónPush Notification Sample Application