msyk / dropbox-api-shortlivedtoken
从刷新令牌生成访问令牌的示例实现。
5
2022-07-08 00:00 UTC
Requires
- php: >=7.1.0
- spatie/dropbox-api: *
README
使用 spatie/dropbox-api 从刷新令牌生成访问令牌的示例实现。
由 Masayuki Nii (nii@msyk.net) 编写
'spatie/dropbox-api' 是 PHP 库用于 Dropbox API 之一。认证的访问令牌很简单,但到 2021 年中旬发生了变化。访问令牌现在会在短期失效,我们必须定期从刷新令牌中重新生成它。由于讨论板上的描述,'spatie/dropbox-api' 上没有实现刷新功能,因为这不是库的范畴。此存储库是刷新访问令牌的示例实现。'spatie/dropbox-api' 的说明页中描述了 AutoRefreshingDropBoxTokenService 类,这里是 AutoRefreshingDropBoxTokenService 类的示例。
如何尝试
- 在 Dropbox App Console 上创建 Dropbox 应用。(https://dropbox.com/developers/)
- 生成刷新令牌。(例如 https://towardsdev.com/dropbox-api-short-lived-tokens-and-refresh-tokens-spring-java-application-fc7264dcdcbd)
composer update
- 将 credential_must_exists.php 复制到 credentials.php 并填写。您需要设置 AppKey、AppSecret、刷新令牌以及存储访问令牌的文件路径。
- 执行 index.php。(例如
php -S localhost:9000
并用任何浏览器打开该 URL)
集成您的解决方案
您可以通过 composer 安装此包
composer require msyk/dropbox-api-shortlivedtoken
或者您可以在 composer.json 文件的 'require' 部分中描述
您 Dropbox 区域的操作方式与 'spatie/dropbox-api' 相同,如下所示。Client 类来自 'spatie/dropbox-api'。AutoRefreshingDropBoxTokenService 类有 4 个参数的构造函数。缓存的访问令牌将被存储在 $tokenFilePath 中的路径,因此它必须是一个可写目录和文件。
use Spatie\Dropbox\Client;
use msyk\DropboxAPIShortLivedToken\AutoRefreshingDropBoxTokenService;
try {
$tokenProvider = new AutoRefreshingDropBoxTokenService($refreshToken, $appKey, $appSecret, $tokenFilePath);
$client = new Client($tokenProvider);
$list = $client->listFolder("/");
} catch (\Exception $ex) {
var_export($ex->getMessage()); // Very simple output.
}
var_export($list); // Very simple output.
致谢
感谢 'spatie/dropbox-api' 的创建者和提交者。