Не удалось использовать поле contentId в запросе выбора или фильтрации вложений в Graph Api - PullRequest
0 голосов
/ 11 декабря 2019

Я использую Microsoft Grapg Api для получения писем из учетных записей Outlook. Мне нужно загрузить вложения, но без содержимого, только поля: id, contentId. Я пытался использовать этот запрос:

GET /me/messages/{id}/attachments?$select=id,contentId

в C #

await graphClient.Me
                .Messages[messageId]
                .Attachments
                .Request()
                .Select("id,contentId")
                .GetAsync();

К сожалению, я получил ошибку:

Message: Parsing Select and Expand failed.
 Inner error:
         AdditionalData:
         request-id: 8cec4ca6-f265-4d50-97af-3aed484ba058
         date: 12/11/2019 9:59:14 AM
 ClientRequestId: 8cec4ca6-f265-4d50-97af-3aed484ba058
 . Version:2.7.1948.0
 Microsoft.Graph.Core: Code: BadRequest
 Message: Parsing Select and Expand failed.
 Inner error:
         AdditionalData:
         request-id: 8cec4ca6-f265-4d50-97af-3aed484ba058
         date: 12/11/2019 9:59:14 AM
 ClientRequestId: 8cec4ca6-f265-4d50-97af-3aed484ba058

IЯ предполагаю, что это потому, что тип вложения не содержит поле contentId, однако это поле содержит тип FileAttachments, который является производным от вложения.

Кто-нибудь знает, как обойти эту проблему?

ОБНОВЛЕНИЕ: Я нашел решение здесь: Невозможно получить свойство ContentId вложения в Office365 REST Api

, вам нужно использовать Select с дополнительным типом, например так:

$select=microsoft.graph.fileAttachment/contentId,id,...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...