message: delta
Пространство имен: microsoft.graph
Важно!
API версии /beta
в Microsoft Graph могут быть изменены. Использование этих API в производственных приложениях не поддерживается. Чтобы определить, доступен ли API в версии 1.0, используйте селектор версий.
Получение набора сообщений, которые были добавлены, удалены или обновлены в указанной папке.
Вызов разностной функции для сообщений в папке аналогичен запросу GET, за исключением того, что, применяя маркеры состояния в одном или нескольких из этих вызовов, можно запросить добавочные изменения в сообщениях в этой папке. Использование разностных данных позволяет постепенно поддерживать и синхронизировать локальное хранилище сообщений пользователя.
Этот API доступен в следующих национальных облачных развертываниях.
Глобальная служба | Правительство США L4 | Правительство США L5 (DOD) | Китай управляется 21Vianet |
---|---|---|---|
✅ | ✅ | ✅ | ✅ |
Разрешения
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения | Разрешения с наименьшими привилегиями | Более высокие привилегированные разрешения |
---|---|---|
Делегированные (рабочая или учебная учетная запись) | Mail.ReadBasic | Mail.Read, Mail.ReadWrite |
Делегированные (личная учетная запись Майкрософт) | Mail.ReadBasic | Mail.Read, Mail.ReadWrite |
Для приложений | Mail.ReadBasic.All | Mail.Read, Mail.ReadWrite |
HTTP-запрос
Чтобы получить все изменения в сообщениях в указанном mailFolder:
GET /me/mailFolders/{id}/messages/delta
GET /users/{id}/mailFolders/{id}/messages/delta
Чтобы получить только созданные, обновленные или удаленные сообщения в указанной папке mailFolder:
GET /me/mailFolders/{id}/messages/delta?changeType=created
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=created
GET /me/mailFolders/{id}/messages/delta?changeType=updated
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=updated
GET /me/mailFolders/{id}/messages/delta?changeType=deleted
GET /users/{id}/mailFolders/{id}/messages/delta?changeType=deleted
Параметры запроса
При отслеживании изменений в сообщениях выполняется цикл из одного или нескольких вызовов разностной функции. Если используется какой-либо системный запрос OData или параметр пользовательского запроса , changeType
необходимо указать его в исходном разностном запросе. Microsoft Graph автоматически кодирует указанные параметры в маркере, входящем в состав URL-адреса @odata.nextLink
или @odata.deltaLink
, включенного в отклик.
Параметры запроса нужно указать только один раз в первом запросе.
В последующих запросах просто скопируйте и примените @odata.nextLink
URL-адрес или @odata.deltaLink
из предыдущего ответа, так как этот URL-адрес уже содержит закодированные требуемые параметры.
Параметр запроса | Тип | Описание |
---|---|---|
$deltatoken | string |
Маркер состояния, возвращенный в @odata.deltaLink URL-адресе предыдущего вызова разностной функции для той же коллекции сообщений, что указывает на завершение этого цикла отслеживания изменений. Сохраните URL-адрес @odata.deltaLink с этим токеном и примените его в первом запросе следующего цикла отслеживания изменений для этой коллекции. |
$skiptoken | строка | Этот токен состояния возвращается в URL-адресе @odata.nextLink предыдущего вызова функции delta и указывает, что из коллекции сообщений получены не все изменения. |
changeType | string | Настраиваемый параметр запроса для фильтрации разностного ответа на основе типа изменения. Поддерживаемые значения: created , updated или deleted . |
Параметры запросов OData
- Вы можете использовать параметр запроса
$select
так же, как в любом другом запросе GET, чтобы задать только те свойства, которые необходимы для эффективной работы. Свойство id возвращается всегда. - Запросы изменений поддерживают параметры
$select
,$top
и$expand
для сообщений. - Поддержка и
$orderby
ограничена$filter
.- Для параметра
$filter
поддерживаются только выражения$filter=receivedDateTime+ge+{value}
и$filter=receivedDateTime+gt+{value}
. - Для параметра
$orderby
поддерживается только выражение$orderby=receivedDateTime+desc
. Если не включить$orderby
выражение, порядок возврата не гарантируется.
- Для параметра
-
$search
Поддержка отсутствует.
Заголовки запросов
Имя | Тип | Описание |
---|---|---|
Authorization | string | Bearer {token}. Обязательно. Дополнительные сведения о проверке подлинности и авторизации. |
Content-Type | string | application/json. Обязательный параметр. |
Prefer | string | odata.maxpagesize={x}. Необязательный параметр. |
Отклик
В случае успешного выполнения этот метод возвращает код ответа 200 OK
и объект message в тексте ответа.
Пример
Запрос
В следующем примере показано, как выполнить один вызов функции delta и ограничить максимальное количество сообщений в тексте ответа до 2.
Чтобы отслеживать изменения в сообщениях в папке, необходимо выполнить один или несколько вызовов разностной функции, чтобы получить набор добавочных изменений с момента последнего разностного запроса. Пример, показывающий цикл разностных вызовов запросов, см. в разделе Получение добавочных изменений в сообщениях в папке.
GET https://graph.microsoft.com/beta/me/mailFolders/{id}/messages/delta
Prefer: odata.maxpagesize=2
Отклик
Если запрос выполнен успешно, ответ будет включать маркер состояния, который представляет собой skipToken (в заголовке ответа @odata.nextLink ) или deltaToken (в заголовке ответа @odata.deltaLink ). Соответственно, они указывают, следует ли продолжить цикл или вы закончили получать все изменения для этого раунда.
В следующем ответе показан элемент skipToken в заголовке ответа @odata.nextLink .
Примечание. Объект отклика, показанный здесь, может быть сокращен для удобочитаемости.
HTTP/1.1 200 OK
Content-type: application/json
{
"@odata.nextLink":"https://graph.microsoft.com/beta/me/mailFolders/{id}/messages/delta?$skiptoken={_skipToken_}",
"value": [
{
"receivedDateTime": "datetime-value",
"sentDateTime": "datetime-value",
"hasAttachments": true,
"internetMessageId": "internetMessageId-value",
"subject": "subject-value",
"body": {
"contentType": "contentType-value",
"content": "content-value"
}
}
]
}