Получение почтовых элементов с помощью Id и Outlook REST API

Учитывая список идентификаторов (или ItemIds), как мы можем эффективно получать электронные письма с OutlookREST Api?

Я попытался подделать следующий запрос.

https://outlook.office365.com/api/beta/me/MailFolders/<somefolderId>/messages?$filter=((Id eq 'firstId') or (Id eq 'secondId') or (Id eq 'thirdId'))

Но я получил ошибку BadRequest 400: "Свойство Id не поддерживает фильтрацию", что очень ясно.

В качестве обходного пути я использую InternetMessageId (мне все равно, какая "копия" письма возвращается). Есть ли способ использовать Id для достижения лучшей производительности?

1 ответ

Решение

Вы можете сделать до 20 человек GET запросы для каждого идентификатора в пакетном запросе. Это доступно только на beta конечная точка прямо сейчас.

Что-то вроде:

POST https://outlook.office.com/api/beta/$batch HTTP/1.1

Authorization: Bearer aGFwcHlnQGRr==
Host: outlook.office.com
Content-Type: multipart/mixed; boundary=batch_myBatchId


--batch_myBatchId
Content-Type: application/http
Content-Transfer-Encoding: binary

GET  /api/beta/me/messages/{id1}    HTTP/1.1


--batch_myBatchId
Content-Type: application/http
Content-Transfer-Encoding: binary

GET  /api/beta/me/messages/{id2}    HTTP/1.1


--batch_myBatchId--
Другие вопросы по тегам