Operación Subscribe

La operación Suscribirse se usa para suscribir aplicaciones cliente a notificaciones de inserción o extracción. 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.

Ejemplo de solicitud de suscripción de extracción

Descripción

En el ejemplo de código siguiente se muestra cómo suscribirse a una suscripción de notificación de eventos de extracción. La suscripción informa a la aplicación cliente si se agrega correo nuevo a la Bandeja de entrada y si se elimina un elemento de la Bandeja de entrada. La suscripción agotará el tiempo de espera si el cliente no solicita información sobre los eventos en un plazo de diez minutos. Si la suscripción expira, se debe establecer una nueva suscripción para seguir solicitando notificaciones.

Código

<?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 de suscripción de extracción

En la solicitud se usan los siguientes elementos:

Para buscar otras opciones para el mensaje de solicitud de la operación Suscribir, explore la jerarquía de esquema. Comience en el elemento PullSubscriptionRequest .

Ejemplo de respuesta de suscripción de extracción correcta

Descripción

En el ejemplo siguiente se muestra una respuesta correcta a la suscripción de extracción. La respuesta contiene el identificador de suscripción y la marca de agua que se usan para obtener la matriz de eventos asociados a una suscripción. El identificador de suscripción también se usa para cancelar la suscripción de un cliente.

Código

<?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 de suscripción de extracción

Los siguientes elementos se usan en la respuesta:

Ejemplo de respuesta de error de suscripción de extracción

Descripción

En el ejemplo siguiente se muestra una respuesta de error a una solicitud subscribe. El error se debe a un intento de suscribirse a las notificaciones mediante el acceso delegado.

Código

<?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 la suscripción de extracción

Los siguientes elementos se usan en la respuesta de error:

Ejemplo de solicitud de suscripción de inserción

Descripción

En el ejemplo de código siguiente se muestra cómo suscribirse a una suscripción de notificación de eventos push. 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 cliente que escucha las notificaciones push.

Código

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

Comentarios

El servicio web de cliente debe configurarse antes de que se envíe la solicitud de suscripción de notificación push; De lo contrario, la primera notificación no se enviará a un punto de conexión válido y se producirá un error en la notificación push. Para obtener más información, vea Aplicación de ejemplo de notificación push.

Al volver a suscribirse, se crea un nuevo SubscriptionId (GetEvents). Use la marca de agua de una suscripción anterior para volver a suscribirse en el punto donde finalizó la suscripción anterior.

Elementos de solicitud de suscripción de inserción

En la solicitud se usan los siguientes elementos:

Ejemplo de respuesta correcta de la suscripción de inserción

Descripción

En el ejemplo siguiente se muestra una respuesta correcta de la suscripción de inserción.

Código

<?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 la suscripción de inserción

Los siguientes elementos se usan en la respuesta:

Vea también

Operación Darse de baja

Operación GetEvents

Uso de suscripciones de extracción

Solicitud de muestra de notificación de inserción