私の Dropbox で利用可能な PDF ファイルをダウンロードするために私のウェブサイトが使用しているコードは次のとおりです。
$url = 'https://www.dropbox.com/s/abctokenKeyxyz/test.pdf?dl=1';
$fullpath = '/path/to/dest/';
$ch = curl_init($url);
$fp = fopen($fullpath, 'w');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($ch, CURLOPT_FILE, $fp);
$rawdata = curl_exec($ch);
curl_close($ch);
fwrite($fp, $rawdata);
fclose($fp);
昨日の夜までは問題なく動作していました。しかし、突然「404 - ページが見つかりませんエラー」がダウンロード ファイル内に表示されるようになりました。ファイルはドロップボックスで引き続き利用でき、権限は変更していません。リダイレクト オプションを php curl に追加しましたが、役に立ちません。
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
404 - page not found エラーが印刷された PDF ファイルを取得しています。シンプルな Linux シェル コマンドを実行すると、curl -L -o test-pdf.pdf https://www.dropbox.com/s/abctokenKeyxyz/test.pdf?dl=1
問題なく動作します。
さて、今私は Dropbox API を使用してサーバーからファイルを取得し、それをサーバーに保存しようとしています。しかし、私が直面しなければならない主な課題は、「Dropbox 共有 URL」しか持っていないことです。共有 URL を使用するだけで、API を使用して Dropbox からサーバーにファイルをダウンロードする方法はありますか? または、OAuth 2.0 キーと Dropbox ファイル共有 URL を渡すだけで、php curl を使用してドロップボックス ファイルをダウンロードできますか?
助けてくれてありがとう!