maengkom/boxapi

最新版Box API,适用于标准用户和应用程序用户

0.1.5 2017-09-11 14:04 UTC

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