2016-07-20 11 views
0

В моем приложении, которое использует API REST Outlook, чтобы поддерживать встроенные изображения в html-письмах, мне нужно получить ContentId из File Attachments данного письма ,Получить ContentId (или любые свойства FileAttachment) без ContentBytes с API-интерфейсом Outlook REST

Примечание: в HTML электронной почте встраиваемых изображения HTML-теги вида <input scr="cid:mycontentid">

мне удалось получить эту информацию в URL https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments

Проблема возвращаемый JSON также содержит ContentBytes, который может быть произвольным большим для больших приложений.

Я попробовал несколько синтаксиса, чтобы получить только те поля, которые мне нужны, такие как:

https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments?$select=Id,ContentId или '$select=Id&$expand=ContentId'

ни один из них не работал, в результате чего в плохой запросе

{"error":{"code":"RequestBroker-ParseUri","message":"Could not find a property named 'ContentId' on type 'Microsoft.OutlookServices.Attachment'."}} 

Ожидаемые типов по адресу '/attachments': Microsoft.OutlookServices.Attachment, который является базовым типом для File Attachments и приложением.

Я хотел бы получить конкретный элемент для вложений файлов (ContentId) или отбросить тяжелый ContentBytes, содержащийся в результатах.

ответ

1

Конечная точка me/messages/{message_id}/attachments возвращает коллекцию вложений.

The ContentID является собственностью FileAttachment. Вы можете использовать этот код, чтобы получить ContentID из fileAttachment:

GET: https://outlook.office.com/api/v2.0/me/messages/{messageId}/attachments?$select=Microsoft.OutlookServices.FileAttachment/ContentId 

EDIT: Примечание: если вы хотите, чтобы получить другое поле, скажем Name отметить, что $select=Microsoft.OutlookServices.FileAttachment/ContentId,Name будет работать в то время как $select=Name,Microsoft.OutlookServices.FileAttachment/ContentId будет выбросить ошибку, указанную в исходном вопросе

+0

Спасибо! Он работает. На самом деле я пробовал такой запрос раньше, но с другими полями в $ select, и я получил ошибку. Сначала нужно загрузить ContentId, я отредактировал ваш ответ, потому что это показалось мне важным. –