Не удалось получить свойство ContentId вложения в REST API Office365.

Я пытаюсь получить вложения в API отдыха Office365. Поскольку я хочу избежать загрузки всех вложений, я использую предложение select, чтобы избежать загрузки содержимого, которое находится в свойстве ContentBytes:

    $select="ContentId,ContentType,Id,IsInline,Name,Size"

В общем, я хочу получить все, кроме содержимого. Однако это дает следующее сообщение об ошибке (json):

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

Он сообщает мне, что ContentId не существует, что противоречит спецификациям< /а>.

Изменить: вот полный запрос:

    GET /api/v2.0/me/messages/AAMkAGZlZjI3N2I3LTg1YWUtNDFiNC05MGI0LTVjYTVmZGI5NGI2YQBGAAAAAABzr8uDji9LRqgTCEsDv22wBwBWTXbvZW0dTKuxUGxpK4-lAAAAAAEMAABWTXbvZW0dTKuxUGxpK4-lAAC5QnKBAAA=/attachments?%24select=ContentId%2CContentType%2CId%2CIsInline%2CName%2CSize 

Еще более странно, когда я выполняю тот же запрос без указания какого-либо предложения select, он возвращает мне полный объект вложения, включая ContentId.

Кто-нибудь может помочь?


person gwyers    schedule 03.02.2016    source источник
comment
ContentId является частью Microsoft.OutlookServices.FileAttachment. Убедитесь, что вы указываете правильный тип. Не видя вашего полного кода, мы не можем сказать.   -  person Brian from state farm    schedule 03.02.2016
comment
Брайан, я понимаю твою точку зрения, и она соответствует сообщению об ошибке. Однако я не вижу вызова REST для поиска FileAttachments вместо вложений. Я проглядел это?   -  person gwyers    schedule 03.02.2016
comment
Используя REST API, вы можете запрашивать только общие базовые элементы в объекте вложения.   -  person Brian from state farm    schedule 03.02.2016


Ответы (3)


Если у кого-то есть такой же вопрос для графика Microsoft, вам нужно пройти этот фильтр:

$select=microsoft.graph.fileAttachment/contentId

как это:

GET https://graph.microsoft.com/v1.0/me/messages/attachments?$select=microsoft.graph.fileAttachment/contentId
person metakungfu    schedule 12.09.2018

Отправленный вами запрос получает спецификации сообщения, но не вложения. Так как вам нужно получить идентификатор контента, вам нужно добавить /attachments в запрос с любыми необходимыми параметрами.

ПОЛУЧИТЕ https://outlook.office.com/api/v2.0/me/messages/%7Bmessage_id%7D/attachments/%7Battachment_id%7D

Поэтому, пожалуйста, добавьте вложения к вашему запросу, чтобы иметь возможность получить идентификатор контента.

Надеюсь это поможет.

person Mostafa    schedule 04.02.2016

Решил это. Ответ был предложен в комментарии Брайана, и я нашел дополнительную подсказку здесь. Поскольку «ContentId» является свойством FileAttachment, вам необходимо указать это в запросе, например:

    $select="Microsoft.OutlookServices.FileAttachment/ContentId,ContentType,Id,IsInline,Name,Size"

Это помогло. Спасибо за предложения.

person gwyers    schedule 04.02.2016