Operação GetEvents

A operação GetEvents é usada por clientes de assinatura pull para solicitar notificações do servidor de Acesso ao Cliente. A resposta da operação GetEvents retorna uma matriz de itens e eventos que ocorreram em uma caixa de correio desde a última notificação.

Importante

A operação DeleteUserConfiguration disparará um evento de movimentação para o sistema de notificação de eventos. O objeto de configuração do usuário será movido para a lixeira.

Observações

Alterações nos itens calendário podem resultar na geração de vários eventos. Esses eventos são o resultado de itens temporários sendo criados na caixa de correio, itens de armazenamento de dados gratuitos/ocupados sendo alterados como parte das operações normais do Calendário ou ambos. Eventos para a classe de item "IPM. SchedulePlus.FreeBusy.BinaryData" deve ser ignorado pelos clientes do serviço Web. Esses itens temporários são excluídos depois que são criados; Portanto, se for feita uma tentativa de recuperar esses itens, será retornado um erro que afirma que o item não foi encontrado.

Exemplo de solicitação GetEvents

Descrição

O exemplo a seguir mostra como solicitar os eventos e itens associados a uma assinatura identificada pelo identificador de assinatura e pela marca d'água.

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>
    <GetEvents xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
      <SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</SubscriptionId>
      <Watermark>AAAAAMAGAAAAAAAAAQ==</Watermark>
    </GetEvents>
  </soap:Body>
</soap:Envelope>

Elementos de solicitação GetEvents

Os seguintes elementos são usados na solicitação:

Exemplo de resposta getEvents bem-sucedido

Descrição

O exemplo a seguir de uma resposta mostra uma notificação da existência de duas novas mensagens de email desde que a última solicitação de notificação foi enviada ao servidor.

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>
    <GetEventsResponse 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:GetEventsResponseMessage ResponseClass="Success">
          <m:ResponseCode>NoError</m:ResponseCode>
          <m:Notification>
            <t:SubscriptionId>f6bc657d-dde1-4f94-952d-143b95d6483d</t:SubscriptionId>
            <t:PreviousWatermark>AAAAAMAGAAAAAAAAAQ==</t:PreviousWatermark>
            <t:MoreEvents>false</t:MoreEvents>
            <t:NewMailEvent>
              <t:Watermark>AAAAAM4GAAAAAAAAAQ==</t:Watermark>
              <t:TimeStamp>2006-08-22T00:36:29Z</t:TimeStamp>
              <t:ItemId Id="AQApAHR" ChangeKey="CQAAAA==" />
              <t:ParentFolderId Id="AQApAH" ChangeKey="AQAAAA==" />
            </t:NewMailEvent>
            <t:NewMailEvent>
              <t:Watermark>AAAAAOQGAAAAAAAAAQ==</t:Watermark>
              <t:TimeStamp>2006-08-22T01:00:50Z</t:TimeStamp>
              <t:ItemId Id="AQApAHRw" ChangeKey="CQAAAA==" />
              <t:ParentFolderId Id="AQApAH" ChangeKey="AQAAAA==" />
            </t:NewMailEvent>
          </m:Notification>
        </m:GetEventsResponseMessage>
      </m:ResponseMessages>
    </GetEventsResponse>
  </soap:Body>
</soap:Envelope>

Comments

Observação

Os identificadores de item e pasta foram encurtados para preservar a legibilidade.

Elementos de resposta GetEvents

Os seguintes elementos são usados na resposta:

Para encontrar outras opções para a mensagem de resposta da operação GetEvents , explore a hierarquia de esquema. Comece no elemento Notificação .

Exemplo de resposta de erro getEvents

Descrição

O exemplo a seguir mostra uma resposta de erro a uma solicitação GetEvents .

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>
    <GetEventsResponse 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:GetEventsResponseMessage ResponseClass="Error">
          <m:MessageText>Access is denied. Only the subscription owner may access the subscription.</m:MessageText>
          <m:ResponseCode>ErrorSubscriptionAccessDenied</m:ResponseCode>
          <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
        </m:GetEventsResponseMessage>
      </m:ResponseMessages>
    </GetEventsResponse>
  </soap:Body>
</soap:Envelope>

Comentários

Ao processar uma solicitação GetEvents , o servidor de Acesso ao Cliente executa as seguintes etapas:

  1. O SubscriptionID da solicitação é confirmado como uma assinatura válida hospedada no servidor de Acesso ao Cliente. Se não for, a chamada GetEvents falhará.

  2. O endereço SMTP do usuário autenticado para a solicitação é comparado ao endereço SMTP do usuário que criou a assinatura. Se eles não corresponderem, a solicitação GetEvents falhará.

  3. A fila de assinatura é consultada para eventos que estão aguardando para serem enviados ao cliente. Se a fila não estiver vazia, os primeiros 50 eventos da fila serão retirados da fila e codificados em uma notificação.

  4. Se nenhum evento for encontrado na fila, um StatusEvent será gerado e codificado em uma resposta de notificação.

  5. A resposta de notificação é retornada ao cliente.

  6. Os eventos incluídos na notificação são removidos da fila de assinatura e a última marca d'água local do servidor de Acesso ao Cliente para a assinatura é definida como a marca d'água do último evento retornado.

  7. O tempo limite para a assinatura é redefinido.

Confira também

Operação de assinatura

Operação de cancelamento de assinatura

Usando assinaturas pull