2016-11-02 3 views
1

Я попытался загрузить файл с API-интерфейсом Grpah.Microsoft Graph загружает содержимое файла 404

Испытано с API браузера, https://graph.microsoft.io/en-us/graph-explorer#

Ран после запроса, получил список информации файла/Папка,

https://graph.microsoft.com/v1.0/me/drive/root/children

И для одного пункта файла, я был в состоянии получить информация о позиции.

https://graph.microsoft.com/beta/me/drive/items/_an_item_id

Но после возвращения HTTP 404.

https://graph.microsoft.com/beta/me/drive/items/_an_item_id/content

Что будет причиной этого симптома?

+0

Был ли запрос '/ content'' 404', или он перенаправил вас ('302') на URL-адрес, который затем вернул' 404'? – Brad

+0

Спасибо @Brad, да, 302 возвращен первым, а затем 404. И найденное местоположение точно такое же, это информация «@ microsoft.graph.downloadUrl» для Файлового Элемента. – Locke

+0

@Brad, так оно и есть, потому что только граф Explorer не поддерживает перенаправление? Я аутентифицировал свое зарегистрированное приложение Azure с режимом Daemon, получил Auth-Code. Я попытался загрузить файл в 'url загрузки' с HTTP-заголовком 'Bearer', но он говорит 404. Как скачать файл с этой ссылки? – Locke

ответ

1

Не поддерживается для выполнения запроса на конечную точку https://graph.microsoft.com/beta/me/drive/items/<itemid>/content через Graph Explorer.

Запрос, отправленный в конечную точку https://graph.microsoft.com/beta/me/drive/items/<itemid>/content через Grath Explorer, выдается как preflight request. Сервер отвечает 302-Redirect, но перенаправления не разрешены для предполетных запросов из-за CORS behavior.

Вот обходной путь о том, как скачать файл

следующего Диск запрос на ресурса:

https://graph.microsoft.com/beta/me/drive/items/<itemId> 

возвращает @microsoft.graph.downloadUrl аннотаций, который содержит фактическую ссылку на файл ресурса.

После получения ресурса элемента привода выполните другой запрос GET для URL-адреса от @microsoft.graph.downloadUrl, чтобы вернуть фактический файл.

+0

Спасибо. Странно, но кажется, что он возвращает 404 для запроса на загрузку, если я использую accesstoken с помощью типа «Daemon или Server Application», написанного на https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/ Но если я использую токен Acces из следующего потока auth, он дает мне данные контента. https://dev.onedrive.com/auth/aad_oauth.htm Для этого требуется User-Login, и я вхожу в качестве глобального пользователя Admin для домена. Первый не требует входа в систему, потому что это демон. Является ли тип AccessToken влияющим на поведение запроса на загрузку файла? – Locke

+0

@Locke У меня такая же проблема (404), когда вы извлекаете файл, используя токен «только для приложения». Могли ли вы загрузить файл без участия пользователя? –

+0

@MartinoBordin Боюсь, нет. Я думаю, что это связано с тем, что они имеют некоторый уровень аутентификации, и при более низком уровне аутентификации мы не можем делать много вещей, таких как загрузка содержимого. – Locke

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