2015-11-08 3 views
0

Я запускаю службу, которую посещают ее пользователи для создания 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 лучше, чем я

ответ

1

раздаточной API Explorer, использует новый API Dropbox v2, который только что вышел из беты. Вы можете найти официальную документацию, в том числе локон, например, здесь:

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

Пока вы используете его как описано здесь (например, вы должны использовать/2/теперь вместо/2- бета-2 /), все должно быть хорошо.

Что касается разрешений, есть несколько, чтобы выбрать из (хотя в настоящее время API v2 поддерживает только папку приложения и полный Dropbox), а разрешение выбирается разработчиком, когда приложение зарегистрировано:

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

Ток доступа вашего приложения получает для учетной записи Dropbox пользователя, как только они ссылаются на приложение, ограничено разрешением приложения.

В вашем случае это звучит так, как было бы достаточно разрешения на папку приложения.

Смежные вопросы