如何使用 PHP SDK 验证 Dropbox 帐户并获取文件?
How to authenticate to a dropbox account and get a file with the PHP SDK?
我正在编写一个小的 php 脚本,用于从保管箱帐户中获取文件。它用于将 CSV 数据导入客户的网站。
到目前为止,我使用 Dropbox 中的共享链接来完成此类任务,但现在数据较少 public,我想对我客户的帐户进行身份验证。
有一个关于 https://www.dropbox.com/developers-v1/core/sdks/php 的教程以及更进一步的教程,但我写下了一个循序渐进的指南,希望对其他人使用 Dropbox 的第一步有所帮助 API。
我使用了 PHP sdk,但它可能与所有其他 SDK 非常相似。
那么,如何验证保管箱帐户并获取文件内容?
由于 API 1.x 已弃用,以下是 v2
的分步指南
- 使用开发者的 Dropbox 帐户登录 Dropbox
- 转到 "Dropbox App Console" https://www.dropbox.com/developers/apps 并注册一个应用程序(常规 Dropbox API)。适当地命名;名称不能包含 "Dropbox"。我选择了"MYVENDORNAMEGetFile"。该应用程序是您自己的脚本,它只是在这里注册。按照说明进行操作。选择 "Permission type: App folder"。 "Status: Development" 可以;禁止 OAuth "Implicit grant"
- 由于 PHP 不再有官方 SDK,请使用
composer require kunalvarma05/dropbox-php-sdk
从 https://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。
- 将该迷你站点放在服务器上(不必与使用令牌的位置相同)。
- 在 Dropbox 应用程序控制台中将 link 注册为 "Redirect URI" 登录回调(例如 https://www.mydomain/dropboxauth/login-callback.php)。
- 将 link 到 login.php 交给您的 "user" 并要求他们通过 link 进行身份验证。如果是您自己并且您使用不同的保管箱帐户,请确保使用正确的帐户(使用各种浏览器)。
- 要求用户将返回的令牌传递给您(您也可以通过 php 通过电子邮件发送它)并告诉 him/her 在哪里可以找到新创建的 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();
我正在编写一个小的 php 脚本,用于从保管箱帐户中获取文件。它用于将 CSV 数据导入客户的网站。
到目前为止,我使用 Dropbox 中的共享链接来完成此类任务,但现在数据较少 public,我想对我客户的帐户进行身份验证。
有一个关于 https://www.dropbox.com/developers-v1/core/sdks/php 的教程以及更进一步的教程,但我写下了一个循序渐进的指南,希望对其他人使用 Dropbox 的第一步有所帮助 API。
我使用了 PHP sdk,但它可能与所有其他 SDK 非常相似。
那么,如何验证保管箱帐户并获取文件内容?
由于 API 1.x 已弃用,以下是 v2
的分步指南- 使用开发者的 Dropbox 帐户登录 Dropbox
- 转到 "Dropbox App Console" https://www.dropbox.com/developers/apps 并注册一个应用程序(常规 Dropbox API)。适当地命名;名称不能包含 "Dropbox"。我选择了"MYVENDORNAMEGetFile"。该应用程序是您自己的脚本,它只是在这里注册。按照说明进行操作。选择 "Permission type: App folder"。 "Status: Development" 可以;禁止 OAuth "Implicit grant"
- 由于 PHP 不再有官方 SDK,请使用
composer require kunalvarma05/dropbox-php-sdk
从 https://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。
- 将该迷你站点放在服务器上(不必与使用令牌的位置相同)。
- 在 Dropbox 应用程序控制台中将 link 注册为 "Redirect URI" 登录回调(例如 https://www.mydomain/dropboxauth/login-callback.php)。
- 将 link 到 login.php 交给您的 "user" 并要求他们通过 link 进行身份验证。如果是您自己并且您使用不同的保管箱帐户,请确保使用正确的帐户(使用各种浏览器)。
- 要求用户将返回的令牌传递给您(您也可以通过 php 通过电子邮件发送它)并告诉 him/her 在哪里可以找到新创建的 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();