Operação Subscribe
A operação Assinar é usada para assinar aplicativos cliente para enviar notificações por push ou pull. É importante estar ciente de que a estrutura das mensagens e respostas de solicitação é diferente dependendo do tipo de notificação de evento.
Exemplo de solicitação de assinatura pull
Descrição
O exemplo de código a seguir mostra como assinar uma assinatura de notificação de evento pull. A assinatura informa o aplicativo cliente se novos emails forem adicionados à caixa de entrada e se um item for excluído da caixa de entrada. A assinatura terá um tempo limite se o cliente não solicitar informações sobre eventos dentro de dez minutos. Se a assinatura expirar, uma nova assinatura deverá ser estabelecida para continuar solicitando notificações.
Código
<?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>
Elementos de solicitação de assinatura de assinatura pull
Os seguintes elementos são usados na solicitação:
Para encontrar outras opções para a mensagem de solicitação da operação Assinar, explore a hierarquia de esquema. Comece no elemento PullSubscriptionRequest .
Exemplo de resposta de assinatura pull bem-sucedida
Descrição
O exemplo a seguir mostra uma resposta de assinatura pull bem-sucedida. A resposta contém o identificador de assinatura e a marca d'água que é usada para obter a matriz de eventos associados a uma assinatura. O identificador de assinatura também é usado para cancelar a assinatura de um cliente de uma assinatura.
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="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>
Elementos de resposta De assinatura pull
Os seguintes elementos são usados na resposta:
Exemplo de resposta de erro de assinatura pull
Descrição
O exemplo a seguir mostra uma resposta de erro a uma solicitação de assinatura. O erro é causado por uma tentativa de assinar notificações usando o acesso de 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="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>
Elementos de resposta a erro de assinatura pull
Os seguintes elementos são usados na resposta de erro:
Exemplo de solicitação de assinatura por push
Descrição
O exemplo de código a seguir mostra como assinar uma assinatura de notificação de evento por push. A solicitação identifica as pastas a serem monitoradas, os tipos de eventos a serem monitorados, a frequência de notificações de status e a URL do serviço Web cliente que escuta as notificações por push.
Código
<?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>
Comments
O serviço Web do cliente deve ser configurado antes que a solicitação de assinatura de notificação por push seja enviada; caso contrário, a primeira notificação não será enviada para um ponto de extremidade válido e a notificação por push falhará. Para obter mais informações, consulte Aplicativo de exemplo de notificação por push.
Uma nova SubscriptionId (GetEvents) é criada quando você assina novamente. Use a marca d'água de uma assinatura anterior para assinar novamente no ponto em que a assinatura anterior terminou.
Elementos de solicitação de assinatura push
Os seguintes elementos são usados na solicitação:
Exemplo de resposta bem-sucedida de assinatura por push
Descrição
O exemplo a seguir mostra uma resposta bem-sucedida de assinatura por push.
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="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>
Elementos de resposta por assinatura push
Os seguintes elementos são usados na resposta: