我正在编写一个小型 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/