此包已被弃用且不再维护。作者建议使用https://github.com/dcblogdev/laravel-box包代替。

Laravel Box包

v2.1.7 2024-03-11 21:08 UTC

README

有一个Discord社区。 https://discord.gg/VYau8hgwrm 如需快速帮助,请在适当的频道提问。

Latest Version on Packagist Total Downloads

Logo

用于处理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 来报告,而不是使用问题跟踪器。

许可协议

许可协议。有关更多信息,请参阅 许可协议文件