2013-02-02 13 views
5

ローカルの単一ページアプリ(Chromeブラウザでローカルに開くためにjavascriptが埋め込まれたウェブページ)を作成しました。私はDropboxアカウントからファイルをアップロードしてダウンロードしたいと思います。私はjavascriptを使ってこれを行うための解決策を探していましたが、私は行き詰まってしまいました。 javascript Dropbox api(dropbox.js)がありますが、認証後にローカルHTMLファイルにリダイレクトされるとは思わないWebサーバー(Dropbox認証リダイレクト用)から使用する必要があるようです。シングルページアプリケーション用のjavascriptを使用してDropboxにファイルをアップロードしていますか?

誰かが私がやろうとしていることをやったことがありますか、それとも実行できませんか? Dropboxでない場合は、代替ドライブ(Googleドライブなど)がありますか?

ありがとうございました。

答えて

2

あなたは間違いなくGoogleドライブで作業することができます:https://developers.google.com/drive/quickstart-js。 周囲に浮遊するサンプルのプランカーもあります。私はあなたもJS APIを介してSkydriveで作業できると信じています。

Dropboxについては100%ではありませんが、OAuth 1(Dropbox認証はOAuth v1仕様の@https://www.dropbox.com/developers/core/authentication#pythonに準拠しています)を使用しており、アプリを公開する必要があるため、秘密。 Twitterは同じものを使い、JS apiを殺した。

0

BottleまたはTornadoのような軽量ローカルWebサーバーの1つを使用できます。リダイレクトURLはhttp://127.0.0.1:5000/のような種類になります。代わりにリダイレクトの

5

To authenticate使用client.authDriver(new Dropbox.Drivers.Popup())see here):

このドライバはDropbox.Drivers.Redirectによってpeformed リダイレクションを扱うことができないブラウザアプリケーションのために有用であり得ます。このドライバ は、アプリケーションのブラウザウィンドウの場所を 別のウィンドウをポップアップさせ、そのウィンドウにDropboxの承認 ページをロードすることによって、ブラウザのウィンドウの場所を変更することを回避します。

read the file locally using a FileReader、次にwrite your fileになるはずです。


更新:はい、そうです。 Browser and Open-Source Applicationsを参照してください:

のDropbox APIガイドラインは、APIキーと秘密が平文で公開 ことはありませんようお願いいたします。これは、 dropbox.jsをクライアント側(ブラウザアプリとChrome拡張機能)で使用するアプリケーションの場合、すべてのオープンソースアプリケーションと同じように というように問題です。

この要件を満たすには、encode your API key

+0

コードでOAuthアプリのシークレットを公開する必要がありますか? (そして、それは悪いですか、この場合は大丈夫ですか?) – legoscia

+0

Dropboxがそうそう言えば十分です。しかし、これはAPIキーと秘密を入れるより安全ですか?コード化されたキーは単に "平文の同等物"ではないのですか? – legoscia

+0

ローカルで認証を行いたいので、その周囲には方法がありません。誰かがあなたの鍵を盗む可能性があることを心配しているなら、サーバ上で認証を渡す必要があります。一方、彼らがあなたの鍵を得たら、彼らはそれをどうしますか? – laktak