Я использую API почты Office 365, и моя цель — получить общее количество сообщений электронной почты, которые пользователь отправил (1.) и получил (2.) сегодня эм>сильный>.
Для этого я сначала создал, попробовал и выполнил несколько запросов в Office 365 API Playground:
https://outlook.office.com/api/v2.0/me/mailfolders/sentitems/messages?$filter=sentdatetime%20ge%202015-12-10T08:00:00.000Z&$select=Subject,CreatedDateTime,ToRecipients
https://outlook.office.com/api/v2.0/me/messages?$count=true&$filter=receiveddatetime%20ge%202015-12-09T10:00:00.000Z&$select=Subject,CreatedDateTime,ToRecipients
Теперь я изо всех сил пытаюсь написать эти запросы с помощью API OutlookServicesClient. Я не нашел много примеров, которые выходят за рамки очень простых запросов... Что у меня есть до сих пор:
var mailResults = await client.Me.MailFolders.Where(f => f.DisplayName == "Sent Items").ExecuteAsync();
Это еще не возвращает просто сообщения и не фильтрует их по текущей дате.var mailResults = await client.Me.Messages.Where(m => m.ReceivedDateTime.Value == date.UtcDateTime).ExecuteAsync();
не возвращает никаких результатов, несмотря на то, что я получил много писем. Кроме того, я хотел бы исключить электронные письма, которые я получил в папках «Кластер», «Удаленные» и «Нежелательная почта».
Как правило, я не уверен, что фильтровать имена папок на английском языке — хорошая идея, так как мне нужно будет изменить код для других языков. Существуют ли специальные идентификаторы для специальных папок Outlook, таких как «Отправленные», «Нежелательная почта», «Кластер» и т. д.?
Кроме того, чтобы решить мои два запроса, я мог бы просто получить все электронные письма и выполнить фильтрацию самостоятельно, но это неэффективно, и API уже поддерживает фильтрацию (как видно из необработанных запросов), я просто не знаю, как писать их с помощью API OutlookServicesClient.