Я запускаю службу, которую посещают ее пользователи для создания PDF-документов, которые затем доставляются им по электронной почте. Я занимаюсь поиском альтернативного маршрута доставки - выкладывая подготовленный документ непосредственно в папку Dropbox, которую они обозначают.API Dropbox Core для загрузки файлов
После исследования я обнаружил Dropbox API, а затем сыграл со своим «проводником» here. Изучая cURL, которые они генерируют для выполнения загрузки файла, я обнаружил, что это довольно легко сделать с помощью точки 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 в долях секунды.
Все очень хорошо. Тем не менее, я в мои первые несколько минут с API Dropbox и есть много, что я не понимаю, здесь
- кода, который я написал выше, слепо подражая их исследователь пример коды правильного способа сделать загрузку файлов?
- В моем случае это пользователи моего сервиса, которые должны будут предоставить мне действительный токен приложения, который я могу использовать выше в бит
Authorization:Bearer...
. Я предполагаю, что этот токен ограничивает меня только работой в пределах их app папка? Разумеется, они не захотят сдать токен, который позволит мне делать то, что я сделаю с их Dropbox. * Излишне говорить, что это было бы обусловлено их настройкой своего типа разрешения «Приложение» на Папка приложений.
Я бы очень признателен за любую обратную связь я могу получить на моем подходе - в частности, недостатки в нем - от тех, кто знает API Dropbox лучше, чем я