maengkom / boxapi
最新版Box API,适用于标准用户和应用程序用户
Requires
- php: >=5.4
- lcobucci/jwt: ^3.1
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is not auto-updated.
Last update: 2022-09-03 07:39:23 UTC
README
这是一个可以用于PHP项目的包,特别是与Laravel集成。此包将为企业App用户服务最新的Box API,用于服务器到服务器的通信(例如,在不请求您的网站访客授权的情况下上传文件到公司Box,以及标准用户访问自己的Box账户,这需要从他们的账户授权访问。)
Laravel上的安装
只需在终端运行此命令即可安装到您的项目中
composer require maengkom/boxapi
下载完成后,您可以将此添加到您的app.php配置文件中
Maengkom\Box\BoxAPIServiceProvider::class, // Laravel 5
'Maengkom\Box\BoxAPIServiceProvider', // Laravel 4
如果您想使用Facade,您可以使用这两个facade
/* Laravel 5 */
'BoxAU' => Maengkom\Box\Facades\AppUserFacade::class,
'BoxSU' => Maengkom\Box\Facades\StandardUserFacade::class,
/* Laravel 4 */
'BoxAU' => 'Maengkom\Box\Facades\AppUserFacade',
'BoxSU' => 'Maengkom\Box\Facades\StandardUserFacade',
BoxAU用于企业App用户的Box账户。BoxSU用于普通用户访问他们自己的Box账户中的资产。
完成这些后,不要忘记运行以下命令,将配置文件复制到Laravel 5项目的config文件夹中
php artisan vendor:publish --tag="boxapi"
对于Laravel 4,请在终端中运行此命令
php artisan config:publish maengkom/boxapi
Lumen上的安装
安装完成后,您需要在bootstrap/app.php
文件中进行一些配置
// Uncomment this line below
$app->withFacades();
// Add these line below to use Facade
class_alias('Maengkom\Box\Facades\AppUserFacade', 'BoxAU');
class_alias('Maengkom\Box\Facades\StandardUserFacade', 'BoxSU');
// Register this service provider
$app->register('Maengkom\Box\BoxAPIServiceProvider');
通用安装
只需包含您想要使用的类,选择一个或两个
BoxAppUser.php // Class for App User type
BoxStandardUser.php // Class for Standard User type
并且这些类是必需的
BoxContent.php // Trait content Box Content API Methods
Helper.php // Helper class
配置
通用
请阅读注释并打开Box文档的url以获取这些键的值。
对于应用程序用户类型,假设您只需要一个用户来与您的网站服务器通信您的box账户。只需设置app_user_name,如果不存在,则包将根据名称为您创建,如果存在为box应用程序上的应用程序用户,则将使用用户ID在应用程序中使用。
应用程序用户私钥文件
当使用应用程序用户类“BoxAppUser”时,您必须创建两个文件:private_key.pem和public_key.pem。将私钥文件放在应用程序的根目录下,对于Laravel项目,这应该没问题,因为位于public文件夹之外。
Laravel 5
在文件夹中有一些配置键需要设置
config/boxapi.php
,并且如果您在根文件夹中设置了私钥文件,不要忘记设置此
'private_key_file' => base_path() . '/private_key.pem'
Laravel 4
配置文件将放在文件夹中
app\config\packages\maengkom\boxapi\config.php
类似于Laravel 5,您可以在根项目文件夹中设置私钥文件
'private_key_file' => base_path() . '/private_key.pem'
Lumen
配置集成在.env文件中,使用以下密钥,并在您的Box应用程序中找到相应的值。请遵循http://developer.box.com中的指南。
BOX_AU_CLIENT_ID =
BOX_AU_CLIENT_SECRET =
BOX_REDIRECT_URI =
BOX_ENTERPRISE_ID =
BOX_APP_USER_NAME =
BOX_APP_USER_ID =
BOX_EXPIRATION = 60
BOX_KID_VALUE =
BOX_PRIVATE_KEY_FILE = private_key.pem
BOX_PASSPHRASE = 1234
对于Lumen,只需提及私钥文件的名称,绝对路径已在ServiceProvider中设置。
'private_key_file' => base_path() . "/" . $_ENV['BOX_PRIVATE_KEY_FILE']
PHP项目
将配置值设置在数组中,并在实例创建时传递配置变量,例如:
$config = array(
'client_id' => '',
'client_secret' => '',
'redirect_uri' => '',
'enterprise_id' => '',
'app_user_name' => '',
'app_user_id' => '',
'kid_value' => '',
'passphrase' => '',
'expiration' => 60,
'private_key_file' => 'private_key.pem',
$box = new BoxAppUser($config); // For App User or
$box = new BoxStandardUser($config) // For Standard User
将您的私钥文件放在无法被互联网用户访问的文件夹外。
API列表
以下是可以使用的API方法。所有方法均遵循Box文档。
对象 | 方法 | 动词 | 官方手册 |
---|---|---|---|
文件夹 | getFolderInfo($id) | 获取 | 获取文件夹信息 |
文件夹 | getFolderItems($id) | 获取 | 获取文件夹项 |
文件夹 | createFolder($name, $parent_id) | POST | 创建文件夹 |
文件夹 | updateFolder($id, $name) | PUT | 更新文件夹 |
文件夹 | deleteFolder($id) | 删除 | 删除文件夹 |
文件夹 | copyFolder($id, $dest) | POST | 复制文件夹 |
文件夹 | createSharedLink($id) | PUT | 创建共享链接 |
文件夹 | folderCollaborations($id) | 获取 | 文件夹协作 |
文件夹 | getTrashedItems($limit, $offset) | 获取 | 获取已删除项 |
文件夹 | getTrashedFolder($id) | 获取 | 获取已删除文件夹 |
文件夹 | permanentDelete($id) | 删除 | 永久删除 |
文件夹 | restoreFolder($id, $newName) | 获取 | 恢复文件夹 |
文件 | getFileInfo($id) | 获取 | 获取文件信息 |
文件 | updateFileInfo($id, $name) | PUT | 更新文件信息 |
文件 | toggleLock($id, $type, $expire, $down) | PUT | 锁定和解锁 |
文件 | downloadFile($id) | 获取 | 下载文件 |
文件 | uploadFile($file, $parent, $name) | POST | 上传文件 |
文件 | deleteFile($id) | 删除 | 删除文件 |
文件 | updateFile($name, $id) | POST | 更新文件 |
文件 | copyFile($id, $dest) | POST | 复制文件 |
文件 | getThumbnail($id) | 获取 | 获取缩略图 |
文件 | getEmbedLink($id) | 获取 | 获取嵌入链接 |
文件 | createSharedLink($id, $access) | PUT | 创建共享链接 |
文件 | getTrashedFile($id) | 获取 | 获取已删除文件 |
文件 | deleteFilePermanent($id) | 删除 | 永久删除 |
文件 | restoreItem($id, $newName) | POST | 恢复文件项 |
文件 | viewComments($id) | 获取 | 查看评论 |
文件 | getFileTasks($id) | 获取 | 获取文件任务 |
示例
如果您想在根目录中获取文件夹信息,请调用此方法。
BoxAU::getFolderInfo('0', true); // Return root folder information using App User in Json format
BoxSU::getFolderInfo('0', true); // Return root folder information using Standard User in Json format