如何验证Dropbox帐户并使用PHP SDK获取文件?

时间:2016-08-23 08:23:06

标签: dropbox dropbox-api

我正在整理一个小的PHP脚本,该脚本从Dropbox帐户中提取文件。它用于将CSV数据导入客户的网站。

到目前为止,我使用了dropbox中的共享链接来执行此类任务,但现在数据不太公开,我想对我的客户帐户进行身份验证。

https://www.dropbox.com/developers-v1/core/sdks/php还有一个教程,但是我写了一个循序渐进的指南,希望对其他人使用Dropbox API的第一步有所帮助。

我使用的是PHP sdk,但可能与所有其他SDK非常相似。

那么,我如何对Dropbox帐户进行身份验证并获取文件的内容?

1 个答案:

答案 0 :(得分:3)

由于API 1.x已弃用,这里是v2的分步指南

  • 使用开发者的Dropbox帐户登录Dropbox
  • 转到" Dropbox App控制台" https://www.dropbox.com/developers/apps并注册一个应用程序(常规Dropbox API)。适当地命名;该名称不能包含" Dropbox"。我选择了" MYVENDORNAMEGetFile"。该应用程序是您自己的脚本,它刚刚在这里注册。按照说明进行操作选择"权限类型:应用程序文件夹"。 "状态:发展"很好;禁止OAuth"隐含授权"
  • 由于没有适用于PHP的官方SDK,请使用composer require kunalvarma05/dropbox-php-sdkhttps://github.com/kunalvarma05/dropbox-php-sdk获取保持良好的官方SDK。
  • 按照https://github.com/kunalvarma05/dropbox-php-sdk/wiki/Authentication-and-Authorization的指示创建三个文件login.php,header.php和login-callback.php,创建一个迷你网站;用你的信息填写header.php。
  • 将该迷你网站放在服务器上(不必与您使用该令牌的位置相同)。
  • 将登录回调的链接(例如https://www.mydomain/dropboxauth/login-callback.php)注册为"重定向URI"在Dropbox App Console中。
  • 将login.php的链接提供给您的" user"并要求他们通过该链接进行身份验证。如果您自己使用不同的保管箱帐户,请确保使用正确的保管箱帐户(使用各种浏览器)。
  • 要求用户将退回的令牌传递给您(您也可以通过php通过电子邮件发送)并告诉他/她在哪里可以找到新创建的Dropbox / Apps / MYVENDORNAMEGetFile目录。
  • 您现在可以使用App Key,App Secret和Token进行身份验证和执行操作,例如:获取https://github.com/kunalvarma05/dropbox-php-sdk/wiki/Upload-and-Download-Files

    中记录的文件内容
    // Configure Dropbox Application
    $app = new \Kunnu\Dropbox\DropboxApp($dropboxAppKey, $dropboxAppSecret, $dropboxToken);
    // Configure Dropbox service
    $dropbox = new \Kunnu\Dropbox\Dropbox($app);
    // Download Dropbox file
    $file = $dropbox->download('/'.$fileName);
    // File Contents
    $itemData = $file->getContents();