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/ 找到
应用注册
要使用Box API,需要在https://app.box.com/developers/console/newapp创建应用
选择应用类型。如果您需要访问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_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);
变更日志
请参阅变更日志以获取最近更改的更多信息。
贡献
欢迎贡献,并将得到完全认可。
贡献可以通过Github上的拉取请求接受。
拉取请求
-
记录行为的变化 - 确保代码库中的
readme.md
和任何其他相关文档都保持最新。 -
考虑我们的发布周期 - 我们尽量遵循 SemVer v2.0.0。随机破坏公共API不是可选项。
-
每个功能一个拉取请求 - 如果你想要完成多件事情,请发送多个拉取请求。
安全
如果你发现任何与安全相关的问题,请通过电子邮件 dave@dcblog.dev 来报告,而不是使用问题跟踪器。
许可协议
许可协议。有关更多信息,请参阅 许可协议文件。