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/

应用程序注册

要在 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,而不是使用问题跟踪器。

许可证

许可证。更多信息请参阅 许可证文件