Microsoft Graph не возвращает сообщения с фильтром даты

Я пытаюсь выполнить следующий запрос, используя график Microsoft:

https://graph.microsoft.com/v1.0/me/messages?$filter=receivedDateTime lt 2016-03-07T16:55:39Z

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

Однако API Microsoft Graph возвращает только одно сообщение для этого запроса, и это первое сообщение, которое я когда-либо получал в своей учетной записи, несмотря на то, что есть много других электронных писем, соответствующих этим критериям. Обратите внимание, что le также страдает от той же проблемы.

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


person eggm0n    schedule 07.03.2016    source источник
comment
Этот точный запрос (буквально) отлично работает для меня. Вы выполняете аутентификацию как пользователь Office 365 (например, почтовый ящик Exchange Online) или как учетная запись Microsoft (например, почтовый ящик Outlook.com)? Вы пытались это сделать в обозревателе Graph (graphexplorer2.azurewebsites.net) или в собственном коде?   -  person Philippe Signoret    schedule 07.03.2016
comment
Пожалуйста, поделитесь значением заголовков request-id и Date в ответе API.   -  person Sriram Dhanasekaran-MSFT    schedule 08.03.2016
comment
@PhilippeSignoret Я использую Graph Explorer как пользователь Office 365. Интересно, что коллеги, которых я попросил попробовать, также столкнулись с той же проблемой.   -  person eggm0n    schedule 08.03.2016
comment
Идентификатор запроса @SriramDhanasekaran-MSFT — b2211250-bfc4-42be-9bbc-73209cf2715d. Кажется, я не вижу заголовок Date с помощью Graph Explorer.   -  person eggm0n    schedule 08.03.2016


Ответы (2)


Я смог решить эту проблему, отсортировав результаты по полученномуDateTime DESC.

Попробуйте это, сработало для меня:

me/messages?$filter=receivedDateTime lt 2016-03-07T16:55:39Z&$orderby=receivedDateTime desc
person David de-Vilder    schedule 08.03.2016

То, что вы описываете, — известная проблема. Что происходит:

Из-за некоторых деталей реализации сообщения, события, контакты и другие типы элементов могут жить вместе в папке. Поскольку коллекция Messages возвращает только сообщения, мы должны пропустить другие элементы. В настоящее время вы увидите, когда мы пропускаем элементы как пробелы. Страница из 10 элементов, на которой заполнено менее 10 элементов (но все еще содержится @odata.nextLink), — это то, как вы бы это определили.

Теперь это обычно не происходит для большинства реальных почтовых папок (например, https://graph.microsoft.com/v1.0/me/MailFolders/Inbox/messages), но вы запрашиваете коллекцию https://graph.microsoft.com/v1.0/me/messages, которая охватывает запрос для всего вашего почтового ящика. Конечным результатом является то, что может быть множество элементов, удовлетворяющих вашим критериям, которые не являются сообщениями.

Мы работаем над тем, чтобы сделать этот опыт лучше, но в настоящее время вы должны иметь возможность просматривать @odata.nextLinks, пока не получите все данные, которые ищете.

person Jeff Wight    schedule 09.03.2016