0

私は、ユーザーがアクセスして PDF ドキュメントを生成し、電子メールで配信するサービスを実行しています。別の配信ルートを検討中です。準備したドキュメントを、指定された Dropbox フォルダーに直接ポップします。

調査の結果、Dropbox APIを発見し、ここで「エクスプローラー」を試してみました。ファイルのアップロードを実行するために生成された cURL を調べたところ、PHP のスポットで非常に簡単に実行できることがわかりました。新しいアプリを作成した後、小さな PHP スクリプトを書きました。

$headers = array('Authorization: Bearer ul...',
                  'Content-Type: application/octet-stream',
                  'Dropbox-API-Arg: {"path":"/test.txt","mode":"add"}');
$data = 'Betty bought a bit of butter';

$ch = curl_init('https://content.dropboxapi.com/2-beta-2/files/upload/');
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

このスクリプトを実行すると、すべてが完璧に機能しました。問題のファイルが私の Dropbox に一瞬で表示されました。

とても素敵です。ただし、私は Dropbox API を使用して最初の数分間に取り組んでおり、ここで理解できないことがたくさんあります。

  • 上記のエクスプローラーのサンプル コードをやみくもに模倣して書いたコードは、ファイルのアップロードを行う正しい方法ですか?
  • 私の場合、上記のAuthorization:Bearer...ビットで使用できる有効なアプリ トークンを提供する必要があるのは、サービスのユーザーです。このトークンにより、アプリフォルダーの範囲内でのみ作業するように制限されていると思いますか? 当然のことながら、彼らは私が彼らの Dropbox でやりたいことをできるようにするためのトークンを渡したがりません。*言うまでもなく、これは、「アプリ」権限タイプをApp Folderに構成することが条件になります。

私よりも Dropbox API をよく知っている人から、私のアプローチ、特にその欠陥についてのフィードバックをいただければ幸いです。

4

1 に答える 1

1

Dropbox API Explorer は、ベータ版が終了したばかりの新しい Dropbox API v2 を使用しています。curl の例を含む公式ドキュメントは、次の場所にあります。

https://www.dropbox.com/developers/documentation/http#documentation-files-upload

そこに記載されているとおりに使用している限り (たとえば、/2-beta-2/ の代わりに /2/ を使用する必要があります)、問題ありません。

アクセス許可に関しては、いくつかの選択肢があります (ただし、API v2 は現在、アプリ フォルダーと完全な Dropbox のみをサポートしています)。アクセス許可は、アプリの登録時に開発者によって選択されます。

https://www.dropbox.com/developers/reference/devguide#app-permissions

ユーザーがアプリにリンクすると、ユーザーの Dropbox アカウントに対してアプリが取得するアクセス トークンは、アプリの許可に制限されます。

あなたの場合、アプリ フォルダーのアクセス許可で十分なようです。

于 2015-11-09T22:01:52.623 に答える