【问题标题】:Dropbox Core API for file uploads用于文件上传的 Dropbox Core API
【发布时间】:2015-11-08 11:07:07
【问题描述】:

我运行一项服务,用户访问该服务以生成 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 文件夹的范围内工作?他们自然不愿意交出一个令牌,让我可以用他们的 Dropbox 做我想做的事。 *不用说 - 这将取决于他们将“应用”权限类型配置为 App 文件夹

我非常感谢那些比我更了解 Dropbox API 的人对我的方法的任何反馈——尤其是其中的缺陷。

【问题讨论】:

    标签: curl dropbox-api dropbox-php


    【解决方案1】:

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

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

    只要您按照那里记录的方式使用它(例如,您现在应该使用 /2/ 而不是 /2-beta-2/),应该没问题。

    关于权限,有几个可供选择(虽然API v2目前只支持应用文件夹和完整的Dropbox),权限由开发者在应用注册时选择:

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

    用户的 Dropbox 帐户链接到应用后,您的应用获取的访问令牌受限于应用的权限。

    在你的情况下,听起来 app 文件夹权限就足够了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-27
      • 1970-01-01
      • 2017-10-13
      • 1970-01-01
      • 1970-01-01
      • 2016-03-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多