2016-11-02 26 views
1

Grpah APIを使用してファイルをダウンロードしようとしました。 APIのブラウザでテストMicrosoft Graphのダウンロードファイルの内容が返されます404

は、 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

しかし、以下の戻り何がこの現象の原因になります404

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

HTTP?

+0

'/ content'リクエスト自体が' 404'か、 '404'を返すURLにリダイレクト(' 302')しましたか? – Brad

+0

ありがとう@ブラッド、はい、302が最初に返され、その後404が返されます。 見つかった場所は、ファイルアイテムの "@ microsoft.graph.downloadUrl"情報とまったく同じです。 – Locke

+0

@ブラッドので、グラフエクスプローラはリダイレクトをサポートしていないためです Azureの登録済みアプリをデーモンモードで認証し、Auth-Codeを取得しました。私は 'Bearer' HTTPヘッダーで 'ダウンロードURL'にファイルをダウンロードしようとしましたが、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エンドポイントに送信された要求は、preflight requestとして発行されます。サーバーは302-Redirectで応答しますが、CORS behaviorのためにプリフライトされた要求に対してはリダイレクトは許可されません。

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

戻っファイルリソースへの実際のリンクが含まれてい@microsoft.graph.downloadUrl注釈:ここで

に次ドライブアイテムリソース要求をファイルをダウンロードする方法の回避策です。

ドライブアイテムリソースが取得されたら、@microsoft.graph.downloadUrlからurlに別のGETリクエストを実行して、実際のファイルを返します。

+0

ありがとうございます。 奇妙ですが、https://azure.microsoftで書かれている「デーモンまたはサーバーアプリケーション」タイプでaccesstokenを使用すると、ダウンロード要求で404が返されるようです。 次の認証フローからのアクセストークンを使用すると、私にコンテンツデータが届きます。 https://dev.onedrive.com/auth/aad_oauth.htm 後者はユーザーログインを必要とし、ドメインのグローバル管理ユーザーとしてログインします。前者はデーモンであるため、ユーザーのログインは必要ありません。 AccessTokenタイプがファイルのダウンロード要求の動作に影響しますか? – Locke

+0

@Locke「App-only」トークンを使用してファイルを取得するのと同じ問題(404)があります。ユーザーの操作なしでファイルをダウンロードできましたか? –

+0

@ MartinoBordin私は恐れています。彼らはあるレベルの認証を持っているからだと思うし、低い認証レベルの下では、私たちはコンテンツのダウンロードのような多くのことをすることができません。 – Locke

関連する問題