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

标签 dropbox dropbox-api

我正在编写一个小型 php 脚本,用于从 Dropbox 帐户获取文件。它用于将 CSV 数据导入到客户的网站。

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

有关于https://www.dropbox.com/developers-v1/core/sdks/php的教程此外,我还写了一份分步指南,希望对其他人首次使用 Dropbox API 有所帮助。

我使用了 PHP sdk,但对于所有其他 SDK 来说可能非常相似。

那么,如何验证 Dropbox 帐户并获取文件内容?

最佳答案

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

  • 使用开发者的 Dropbox 帐户登录 Dropbox
  • 转到“Dropbox 应用控制台”https://www.dropbox.com/developers/apps并注册一个应用程序(常规 Dropbox API)。适当命名;该名称不能包含“Dropbox”。我选择“MYVENDORNAMEGetFile”。该应用程序是您自己的脚本,它只是在这里注册。按照说明进行操作。选择“权限类型:应用程序文件夹”。 “状态:开发”还可以;禁止 OAuth“隐式授予”
  • 由于 PHP 不再有官方 SDK,请从 https://github.com/kunalvarma05/dropbox-php-sdk 获取维护良好的非官方 SDK。与 composer 需要 kunalvarma05/dropbox-php-sdk
  • 按照https://github.com/kunalvarma05/dropbox-php-sdk/wiki/Authentication-and-Authorization上的说明创建三个文件login.php、header.php和login-callback.php来创建一个迷你网站;用您的信息填写 header.php。
  • 将该迷你站点放在服务器上(不必位于使用 token 的同一位置)。
  • 在 Dropbox 应用控制台中将登录回调链接(例如 https://www.mydomain/dropboxauth/login-callback.php )注册为“重定向 URI”。
  • 将 login.php 的链接提供给您的“用户”,并要求他们通过该链接进行身份验证。如果您本人使用不同的 Dropbox 帐户,请确保您使用正确的帐户(使用不同的浏览器)。
  • 要求用户将返回的 token 传递给您(您也可以通过 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();
    

关于dropbox - 如何使用 PHP SDK 验证 Dropbox 帐户并获取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095968/

相关文章:

ios - 使用 Dropbox 在空中分发应用程序时出错

java - 通过 Java 在不使用新 URL() 的情况下加载文件

android - 在 Android 中集成 Dropbox 同步

html - 扩展 HTML5 移动应用程序以获得更多文件存储

dropbox - 当 Dropbox 上的文件更改时收到通知

javascript - 如何使用 Dropbox 上传 session 处理大于 150mb 的文件?

java - 如何使用 dropbox api 解决 spring boot 中的多部分异常?

iphone - 使用适用于 iOS 的 Dropbox Chooser SDK 时无法生成链接错误

python - 有没有办法使用 Dropbox API 下载文件而不使用网络服务器带宽?

python - Flask dropbox 导致错误 : ImportError: No module named _winreg