1

Core Dropbox API を使用して、ファイル共有アプリケーションに Dropbox を使用したいと考えています。認証に OAuth 2.0 API を使用しています (Implicit Grant Method)。問題は、アクセス トークンを取得するには、Dropbox アカウントにログインする必要があるか、Dropbox ログイン ページにリダイレクトされることです。ユーザーにログイン認証情報を入力させたくありません。

ログインプロセスを回避し、アクセストークンを直接取得する方法はありますか?? または、ユーザーの反復なしに、バックエンドでいくつかのログイン API を使用してログインできますか??

ここでは、必要な資格情報がすべて揃っている 1 つの Dropbox アカウントを検討しています。

ありがとう。

4

4 に答える 4

2

はい、できます。

以下をせよ:

https://www.dropbox.com/developersに移動します [App Console] をクリックします [Create App] をクリックします [Dropbox API app] を選択します データのタイプとして [Files and Datastores] を選択します。残りの質問には、自分の好みのアクセス方法で回答してください

これが必要なビットです。アプリがセットアップされたら、App Console でアプリをクリックします。アプリのメイン ページの OAUTH2 セクションに、[アクセス トークンの生成] というボタンがあります。

このボタンをクリックすると、無期限のアクセス トークンが生成されます。このトークンをコピーしてアプリに貼り付けて使用すると、Oauth2 認証ダンスを実行しなくてもアクセスできます。

これは、curl でアクセス トークンを使用してフォルダー内のファイルを一覧表示する (および他のメタデータを取得する) 例です。

curl https://api.dropbox.com/1/metadata/dropbox/YourFolder -H "Authorization:Bearer XYZ123"

XYZ123 は、アプリのアプリ コンソールから生成したアクセス トークンです。

リクエストのヘッダーに Authorization: Bearer を含める限り、アプリ ID やシークレットを指定したり、oauth2 認証ダンスを実行したりすることなく、コア APIのすべての API 呼び出しを使用できます。

于 2015-04-09T18:33:30.773 に答える
0

コア API のドキュメントでお気づきかもしれませんが、Dropbox はこの機能を提供していません。

ただし、Web サイトでのユーザーの操作をシミュレートすることで、プロセスを自動化できます。これは requests モジュールで行うことができます。私は自分のプロジェクトのソリューションを開発しました:

https://github.com/joe42/CloudFusion/blob/master/cloudfusion/store/dropbox/dropbox_store.py#L214

当時は知りませんでしたが、PhantomJS のようなソリューションを使用すると、これをより簡単に行うことができるかもしれません。

于 2015-01-07T19:34:53.183 に答える
0

Dropbox アカウントを使用してファイルを保存したいので、他のユーザーやあなたのユーザーにログインを煩わせる理由はありません:access_token通常の方法 ( Dropbox にログインする必要があります) でクライアント用の を取得するだけで、アプリケーションに保存できますaccess_token Dropbox API への呼び出しでそれを使用します。Dropbox のアクセス トークンは、 Dropbox Access Token Expiryに従って期限切れになることはないため、これで十分です。

于 2015-01-07T13:02:43.110 に答える
0

ここで私自身の質問に考えられる解決策を提示します。ここでの主な問題は、一定の間隔でアクセストークンを再生成することでした。これも、ユーザーの操作なしで、バックエンドのものです。Dropbox API を調べた結果、アクセス トークンを自動的に再生成するために公開されている API はないと結論付けました。ただし、Google ドライブはユーザーの操作を必要としないサービス アカウントを提供します。

于 2015-01-12T06:18:03.733 に答える