dcblogdev / laravel-box
Laravel Box 包
Requires
- php: ^8.1
- guzzlehttp/guzzle: 7.x
- illuminate/support: 10.x|11.x
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^8.13
- pestphp/pest: ^1.23|^2.0
README
存在一个 Discord 社区。 https://discord.gg/VYau8hgwrm 为了快速帮助,请在适当的频道中提问。
用于处理 box API 的 Laravel 包。
Box API 文档可在以下位置找到:https://developer.box.com/
应用程序注册
要在 https://app.box.com/developers/console/newapp 创建应用程序以使用 Box API。
选择应用程序类型。如果您需要访问 API 功能,请选择自定义。
选择自定义后,选择 OAuth2 应用类型。
安装
通过 Composer
composer require dcblogdev/laravel-box
配置
您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="Dcblogdev\Box\BoxServiceProvider" --tag="config"
发布后,config/box.php 配置文件包含
return [ 'clientId' => env('BOX_CLIENT_ID'), 'clientSecret' => env('BOX_SECRET_ID'), 'redirectUri' => env('BOX_REDIRECT_URI'), 'boxLandingUri' => env('BOX_LANDING_URI'), 'urlAuthorize' => 'https://account.box.com/api/oauth2/authorize', 'urlAccessToken' => 'https://www.box.com/api/oauth2/token', ];
迁移
您可以使用以下命令发布迁移:
php artisan vendor:publish --provider="Dcblogdev\Box\BoxServiceProvider" --tag="migrations"
迁移发布后,您可以通过运行迁移来创建 tokens 表
php artisan migrate
`.ENV 配置`
您应该在 .env 文件中添加环境变量,这允许您在不同的服务器上使用不同的 box 应用程序,每个 box 应用程序都需要一个唯一的回调 URL。
使用 OAuth 2.0 凭据时需要以下内容
BOX_REDIRECT_URI
是 Box 应该重定向到以进行 Box 身份验证的位置,在成功验证后,使用 BOX_LANDING_URI
将用户重定向到所需页面。 > 注意:BOX_REDIRECT_URI 需要是完整的 URI,即 https://domain.com/box/
BOX_CLIENT_ID=
BOX_SECRET_ID=
BOX_REDIRECT_URI=https://domain.com/box/oauth
BOX_LANDING_URI=https://domain.com/box
用法
导入命名空间
use Dcblogdev\Box\Facades\Box;
路由示例
Route::get('box', function() { //if no box token exists then redirect Box::getAccessToken(); //box authenticated now box:: can be used freely. //example of getting the authenticated users details return Box::get('/users/me'); }); Route::get('box/oauth', function() { return Box::connect(); });
可以通过引用 Box:: 然后是动词 get、post、put、patch 或 delete,后面跟要调用的端点来调用。可以作为第二个选项传递一个数组。
端点是位于 https://api.box.com/2.0/ 后的相对路径
示例 GET 请求
Box::get('users/me');
示例 POST 请求
Box::post('folders', [ 'name' => 'name of the folder', 'parent' => [ 'id' => 0 ] ]);
公式是
Box::get('path', $array); Box::post('path', $array); Box::put('path', $array); Box::patch('path', $array); Box::delete('path', $array);
处理文件
此包提供了一种处理文件的简洁方式。
要处理文件,首先调用 ->files(),然后调用一个方法。
获取文件接受一个文件 ID,返回一个数组。
Box::files()->file($id);
下载文件接受一个文件 ID,可选地可以使用当 $storeDownload 设置为 true 时使用的路径。要下载文件,只需要一个 ID。
Box::files()->download($id, $path = '', $storeDownload = false);
上传文件接受一个文件路径和文件名。可选地指定父级,默认为 0 当省略时。
Box::files()->upload($path, $name, $parent = 0);
上传修订版接受文件 ID、文件路径和文件名。可选地指定新名称。
Box::files()->uploadRevision($file_id, $filepath, $name, $newname = null);
删除文件接受一个文件 ID,不返回任何输出。
Box::files()->destroy($id);
变更日志
有关最近更改的更多信息,请参阅 changelog。
贡献
欢迎贡献,并将得到充分认可。
通过 Github 上的拉取请求接受贡献。
拉取请求
-
记录任何行为变化 - 确保readme.md和其他相关文档保持最新。
-
考虑我们的发布周期 - 我们尽量遵循 SemVer v2.0.0。随机破坏公共API不是可选项。
-
每个功能一个拉取请求 - 如果你想做多件事,请发送多个拉取请求。
安全性
如果你发现任何与安全相关的问题,请发送电子邮件至 dave@dcblog.dev,而不是使用问题跟踪器。
许可证
许可证。更多信息请参阅 许可证文件。