2016-11-06 10 views
1

私は共有のOneDriveフォルダにいくつかのサブフォルダとファイルを用意しています。私。私はリンクを介してそれを共有しているので、このリンクを持つ誰もがそれらにアクセスできます。APIを使用して公開共有OneDriveフォルダにアクセス

これらのファイルには、クライアント側のJavaScriptか、REST API経由でサーバー側のコードからアクセスできますか?ユーザー固有の資格情報を使用する必要はありませんか?


私は

をしようとしてきた私はAccessing Shared Contentページを見てきた、そしてそれは私が欲しいもののように見えますが、それを使用する方法を見つけ出すことはできません。

私は、長い16進数(私を指しているIDのようです)、!、そして数字(私は共有リソースに関係していると仮定)。私はこのURLでそれを固執しようとした

:...

https://api.onedrive.com/v1.0/shares/<id>/root?expand=children 

しかし、私は400不正な要求を取り戻すので、何かがかなり右ではない私は考えていますおそらく何らかの認証が行方不明になっているかもしれませんが、共有ファイルは公開されているので、ユーザーは自分の資格情報でログインする必要はなく、コードで自分自身を使用することはできません。

私はアプリケーションID(guid)を取得し、パスワードと鍵ペアを生成できるregister an appを試しました。多分私は共有フォルダは、聖歌隊のための楽譜が含まれている目標


...ということが、どのように、どこで、実際にそれらを使用するためにAPIに表示されていない使用することができます期待していました私は更新を維持する責任があることを認識しています(OneDriveの同期はここで非常に便利です)。

一部のメンバーはあまりコンピュータに精通していない人もいるので、これらのファイルを見て、できるだけ簡単にダウンロードしたいと思っています。 「他の奇妙なサイトに移動してそこにあるファイルを見つける」という共有リンクは、私たちのウェブサイトのメンバー専用エリアに直接ファイルをリストしたいと思うでしょう。基本的には「ここにファイルがあります」をクリックしてダウンロードします。

+0

JSONに関する質問に何も表示されません。タグがそこにある理由はありますか? –

+0

@MikeMcCaughanほとんどの場合、残りのAPIはJSONを返すようです。私は最後にそれを書いていますが、何らかの理由でStackOverflowがタグを最も関連性の低いタグから順番に並べています:P – Svish

+0

したがって、私のような人たちがJSONタグの後に書式、パース方法などに関する質問をします。この質問は形式、パース方法などと関係がないので、タグを含めないことが望ましいでしょう。タグとは、接線に関連する技術のリストだけでなく、質問の内容を分類するためのものです。 –

答えて

3

はい、REST APIを使用してフォルダのコンテンツにアクセスできます。

APIは、あなたが言及したもので、shares APIです。しかし、誤ったIDを使用している可能性があります。

これを行う最も簡単な方法は、encode the actual sharing URL into a tokenへの指示に従うことです。この方法で、共有リンクのbase64でエンコードされたバージョンを作成し、 "u!"その文字列の先頭に移動し、あなたがすでに言及した正確な呼び出しを行います。あなたは共有フォルダ内のファイルのリストを取得し、そこから移動することができます。

ここにその例を示します。 OneDriveのフォルダへの共有リンクがあり、その中に写真がいくつかあります。

https://1drv.ms/f/s!AtuAM_NacwVahiFpuMGS_BiQCwWuはあなたの最初のBASE64はURLをエンコードし、Uを追加し、APIには、このURLを変換するには!

uが今、あなたは共有トークンとしてこのURLを使って、子供やサムネイルを拡大することができaHR0cHM6Ly8xZHJ2Lm1zL2YvcyFBdHVBTV9OYWN3VmFoaUZwdU1HU19CaVFDd1d1

:!この下のリンク上

https://api.onedrive.com/v1.0/shares/u!aHR0cHM6Ly8xZHJ2Lm1zL2YvcyFBdHVBTV9OYWN3VmFoaUZwdU1HU19CaVFDd1d1/root?expand=children

クリックすると、あなたにJSONレスポンスを与える必要があり、その共有フォルダーとフォルダー内の子が含まれます。

+0

ええ、これは私がやろうとしたことです...これがうまくいっている例がありますか? – Svish

+0

答えに例を追加しました。 –

+0

base64エンコーディングの場合は、URLが安全であることを確認してください。https://en.wikipedia.org/wiki/Base64#URL_applications(特に、+を - と/と_に置き換える方法についての部分) – Brad

関連する問題