私は、ユーザーがアクセスして 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 をよく知っている人から、私のアプローチ、特にその欠陥についてのフィードバックをいただければ幸いです。