message: delta
Пространство имен: microsoft.graph
Получение списка сообщений, которые были добавлены в указанную папку, обновлены в ней или удалены из нее.
Вызов разностной функции для сообщений в папке аналогичен запросу 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
Параметры запроса
При отслеживании изменений в сообщениях выполняется цикл из одного или нескольких вызовов разностной функции. Если используется любой параметр запроса (кроме $deltatoken
и $skiptoken
), который является параметром системного запроса 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 или deleted updated . |
Параметры запросов OData
- Вы можете использовать параметр запроса
$select
так же, как в любом другом запросе GET, чтобы задать только те свойства, которые необходимы для эффективной работы. Свойство id возвращается всегда. - Запросы изменений поддерживают параметры
$select
,$top
и$expand
для сообщений. - Имеется ограниченная поддержка параметров
$filter
и$orderby
:- Для параметра
$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/v1.0/me/mailFolders/AAMkAGVmMDEzMTM4LTZmYWUtNDdkNC1hMDZiLTU1OGY5OTZhYmY4OAAuAAAAAAAiQ8W967B7TKBjgx9rVEURAQAiIsqMbYjsT5e-T7KzowPTAAAAAAFNAAA=/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/v1.0/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"
}
}
]
}