2016-02-03 5 views
1

Я пытаюсь получить вложения в приложении office365 rest api. Так как я хочу, чтобы избежать загрузки всего вложения, я использую выберите пункт, чтобы избежать загрузки содержимого, которое находится в собственности ContentBytes:Не удалось получить свойство ContentId вложений в Office365 REST Api

$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 не существует, что противоречит specifications.

Edit: Вот полный запрос:

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

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

Любой может помочь?

+0

'ContentId' является частью' Microsoft.OutlookServices.FileAttachment'. Убедитесь, что вы указали правильный тип. Не видя полного кода, мы не можем сказать. –

+0

Брайан, я вижу вашу точку, и она соответствует сообщению об ошибке. Однако я не вижу никакого вызова REST для поиска FileAttachments вместо приложений. Я упустил это? – gwyers

+0

Используя REST API, вы можете запросить только общие базовые элементы в объекте Attachment. –

ответ

1

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

https://outlook.office.com/api/v2.0/me/messages/{message_id}/attachments/{attachment_id} GET

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

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

0

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

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

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

Смежные вопросы