Поделиться через


Операция GetEvents

Операция GetEvents используется клиентами подписки по запросу уведомлений с сервера клиентского доступа. Ответ операции GetEvents возвращает массив элементов и событий, произошедших в почтовом ящике с момента последнего уведомления.

Важно!

Операция DeleteUserConfiguration активирует событие перемещения для системы уведомлений о событиях. Объект конфигурации пользователя будет перемещен в контейнер.

Примечания

Изменения элементов календаря могут привести к созданию нескольких событий. Эти события являются результатом создания временных элементов в почтовом ящике, элементов хранилища данных о доступности, измененных в рамках обычных операций Календаря, или и того, и другого. События для класса элемента IPM. SchedulePlus.FreeBusy.BinaryData" следует игнорировать клиентами веб-служб. Эти временные элементы удаляются после их создания; Таким образом, если предпринята попытка получить эти элементы, будет возвращена ошибка с сообщением о том, что элемент не найден.

Пример запроса GetEvents

Описание

В следующем примере показано, как запросить события и элементы, связанные с подпиской, которая определяется идентификатором подписки и водяным знаком.

Код

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

Элементы запроса GetEvents

В запросе используются следующие элементы:

Пример успешного ответа GetEvents

Описание

В следующем примере ответа показано уведомление о наличии двух новых почтовых сообщений с момента отправки последнего запроса на уведомление на сервер.

Код

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

Примечание.

Идентификаторы элементов и папок сокращены, чтобы сохранить удобочитаемость.

Элементы ответа GetEvents

В ответе используются следующие элементы:

Чтобы найти другие параметры для ответного сообщения операции GetEvents , изучите иерархию схем. Начните с элемента Notification .

Пример ответа getEvents Error

Описание

В следующем примере показан ответ на ошибку на запрос GetEvents .

Код

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

Замечания

При обработке запроса GetEvents сервер клиентского доступа выполняет следующие действия.

  1. SubscriptionID запроса подтверждается как действительная подписка, размещенная на сервере клиентского доступа. Если это не так, вызов GetEvents завершается ошибкой .

  2. SMTP-адрес пользователя, прошедшего проверку подлинности, сравнивается с SMTP-адресом пользователя, создавшего подписку. Если они не совпадают, запрос GetEvents завершается ошибкой .

  3. Очередь подписки запрашивает события, ожидающие отправки клиенту. Если очередь не пуста, первые 50 событий из очереди извлекаются из очереди и кодируются в уведомление.

  4. Если события в очереди не найдены, событие StatusEvent создается и кодируется в ответ на уведомление.

  5. Ответ уведомления возвращается клиенту.

  6. События, включенные в уведомление, удаляются из очереди подписки, а для последней локальной подложки сервера клиентского доступа для подписки устанавливается водяной знак последнего возвращаемого события.

  7. Время ожидания для подписки сбрасывается.

См. также

Операции подписки

Операция по отмене подписки

Использование подписок по запросу