Операция 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 сервер клиентского доступа выполняет следующие действия.
SubscriptionID запроса подтверждается как действительная подписка, размещенная на сервере клиентского доступа. Если это не так, вызов GetEvents завершается ошибкой .
SMTP-адрес пользователя, прошедшего проверку подлинности, сравнивается с SMTP-адресом пользователя, создавшего подписку. Если они не совпадают, запрос GetEvents завершается ошибкой .
Очередь подписки запрашивает события, ожидающие отправки клиенту. Если очередь не пуста, первые 50 событий из очереди извлекаются из очереди и кодируются в уведомление.
Если события в очереди не найдены, событие StatusEvent создается и кодируется в ответ на уведомление.
Ответ уведомления возвращается клиенту.
События, включенные в уведомление, удаляются из очереди подписки, а для последней локальной подложки сервера клиентского доступа для подписки устанавливается водяной знак последнего возвращаемого события.
Время ожидания для подписки сбрасывается.