2016-06-28 18 views
0

https://graph.microsoft.com/v1.0/me/drive/root/microsoft.graph.searchエンドポイントを使用して、ユーザーのOneDrive for Businessアカウントからの検索結果を正常に返しています。OneDrive for Business Thumbnails Microsoft Graphを使用

私はこれらの結果をアプリケーション内のフェデレーション検索で使用しており、利用可能な場合は各項目のサムネイルをレンダリングするためにAPIを使用したいと考えています。

私はhttps://graph.microsoft.comリソースのアクセストークンを持っており、サムネイル以外はすべてうまくいっています。

Iたとえば、背面のサムネイルの収集データを取得することができています:

[小] =>アレイ(

[高さ] => 350

[幅] => 266

[URL] => HTTPS://xxxxxxxxxxx-my.sharepoint.com/personal/xxxxxxxxxxxxxxxxx_onmicrosoft_com/_api/v2.0/drive/items/{item ID} /サムネイル/ 0 /小/ thumbnailContent )

imgタグ内またはcurl経由でthumbnailContent urlにアクセスしようとすると、エラーが返されます。カールについては、ヘッダーにアクセストークンを指定しています。

私のようなエラー情報を受信します。

HTTP/1.1 403

X-MSDAVEXT_Error:917656;アクセス+拒否+前+開く+ファイル+この+場所%2c +あなた+が必要+最初の+閲覧+ +ウェブ+サイト+と+選択+オプション+ +ログイン+自動。

{ "エラー":{ "コード": " - 2147024891、System.UnauthorizedAccessException"、 "メッセージ": "アクセスが必要ですこのアクションを実行するか、このリソースにアクセスする権限がありません拒否された。。"}}

ここで必要なことを解決する助けがあれば助かります。

グラフトークンの代わりにsharepointトークンが必要な場合があります。そうであれば、必要なsharepointトークンを要求するために必要なリソースIDを取得する方法を見つけることができません。

ありがとうございます。

+0

こんにちはRay - 私は問題があるかどうかを確認するためにGitHubレポを見ていました。 7日前のコメントは、彼らが事前認証されたURLを無効にしたことを示しています。私はこのスレッドに従うだろうし、多分それにいくつかのコメントを追加します。 https://github.com/OfficeDev/microsoft-graph-docs/issues/135 – jdruid

+0

ありがとうございました。私はそれを見ました...私はSharePointトークンが必要かもしれないと思って、各サムネイルURLに対して正しく認証されたリクエストを送信しようとしていますが、成功しなかった。事前認証されたURLは唯一のオプションですか? –

+0

私はこの記事[link](https://blog.beecomedigital.com/2015/07/27/generate-thumbnail-of-a-document-stored-in)で説明されているgetpreview.ashx URLを構築しようとしました。 -sharepoint-from-its-url /)、それは動作しますが、最初のロード時に問題が発生しています。まだ認証されていないようですが、ブラウザーから "view image"私は私のセッションにはいいですね。私はおそらくこれを動作させるためにハックすることができますが、それは準備ができていないと感じています。私はそのURLの構文に頼っています... –

答えて

0

グラフの開発者は、ここに投稿された問題(私が始めた)github.com/OfficeDev/microsoft-graph-docs/issues/135によると、未知のサムネイルURLが来ていることを私たちに保証します。その間に、私はあなたがやろうとしているように見える回避策に従うことができます。あなたが指摘したように、onedrive API用のアクセストークンを提供する必要があります。これは、Graph APIのアクセストークンと同じではありません。関連するOneDrive API documentationをチェックアウトする必要がありますが、探している "リソースID"がOneDriveのベースURLにすぎない場合があります。 https://contoso-my.sharepoint.com/。実際にサムネイルURL自体からこれを解析することができます。 JavaScriptからこのすべてをやっているのであれば、Adal.jsをまだ見ていないのをお勧めします。

OneDrive APIアクセストークンを使用して、thumbnailContent要求を行うことができます。 responseTypeblobをリクエストした場合は、FileReader.readAsDataURL(JavaScriptであることを前提とします)を使用して、画像タグに入れることができるデータURLを取得できます。

は、私はこのすべてを見て以来、しばらくして、しかし、これは私がその問題のリンクに掲載たびのとして働いていた回避策でした。それが役に立てば幸い。

+0

ありがとう、マイク...私は説明されているようにリソースIDでjavascriptのアプローチを実装できました私のPHPアプリケーションにそのテクニックを適用してサムネイルのサーバー側をダウンロードしてキャッシュし、adal.jsで必要なCORSの問題やマニフェストの修正を避けてください。もう一度おねがいします。あなたのgithub投稿とこの回答は非常に役に立ちました。 –

関連する問題