用于文件上传的Dropbox Core API

时间:2015-11-08 11:07:08

标签: curl dropbox-api dropbox-php

我运行其用户访问过的服务,以生成PDF文档,然后通过电子邮件发送给他们。我正在探索另一种交付路线 - 直接在他们指定的Dropbox文件夹中弹出准备好的文档。

经过一番研究后,我发现了Dropbox API,然后与他们的“探险家”here一起玩。检查他们生成的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...位中使用的有效App令牌。我假设这个令牌限制我只在他们的 app 文件夹的范围内工作?当然,他们不愿意交出让我按照Dropbox行事的令牌。 *不用说 - 这将取决于他们将“App”权限类型配置为 App Folder

我非常感谢我能从我的方法中得到的任何反馈 - 特别是其中的缺陷 - 来自那些比我更了解Dropbox API的人。

1 个答案:

答案 0 :(得分:1)

Dropbox API Explorer使用刚刚推出测试版的新Dropbox API v2。您可以在这里找到官方文档,包括卷曲示例:

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

只要你在那里使用它,(例如,你应该使用/ 2 / now而不是/ 2-beta-2 /),它应该没问题。

关于权限,有一些可供选择(虽然API v2目前仅支持app文件夹和完整的Dropbox),并且开发人员在注册应用程序时选择了权限:

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

一旦用户的Dropbox帐户链接到应用程序,该应用获取的访问权限受限于该应用的许可。

在您的情况下,听起来应用文件夹权限就足够了。