robindeschepper / phpbox
此包已废弃,不再维护。未建议替代包。
PHP Box 包。
v0.1.1-alpha
2018-12-07 14:17 UTC
Requires
- php: >=7.0
- firebase/php-jwt: 5.0.0
- guzzlehttp/guzzle: ^6.3.3
This package is auto-updated.
Last update: 2021-02-02 08:47:17 UTC
README
该项目已废弃,我不再使用Box或PHP。
Box v2.0 API的多个方面的实现。
安装
使用composer require robindeschepper/phpbox
安装。
入门
目前它通过Box JWT JSON配置文件连接,或者通过在Config对象上设置值。访问您的box应用的方式如下
require_once("vendor/autoload.php"); use PhpBox\Box; use PhpBox\Config\JsonConfig; $config = new JsonConfig("path/to/box_config.json"); $box = new Box($config);
这将使用您的json配置文件通过JWT请求访问令牌。令牌存储在PhpBox对象中,并在过期时自动刷新。
模型
我为Box API中的以下对象创建了类
Collaboration, CollaborationWhitelistEntry,
Comment, DevicePinner, Event, File, FileVersion,
FileVersionRetention, Folder, Group, GroupMembership,
Item, LegalHold, LegalHoldPolicy, LegalHoldPolicyAssignment,
Metadata, MetadataCascadePolicy, MetadataTemplate,
RecentItem, RetentionPolicy, RetentionPolicyAssignment, SharedLink,
StoragePolicy, StoragePolicyAssignment, Task, TemplateField,
TermsOfService, User, Webhook, WebLink
这些对象通过分析Box接收到的JSON有效载荷(使用Guzzle请求)来填充。返回的JSON对象中的每个字段将成为PhpBox对象中的一个属性。
JSON到PhpBox对象的示例
{ "id": "1234", "type": "file_version", "file": { "id": "125", "type": "file" }, "version": "2" }
这将成为一个类型为PhpBox\Objects\FileVersion
的对象,具有字段id
、type
、version
和file
(类型为PhpBox\Objects\File
)。
管理器
这些对象中的一些将在PhpBox对象中有一个管理器,用于执行Box API参考中为每个对象描述的操作,例如创建、请求、删除、更新或其他许多操作。
$folder = $box->Folder->create("0", "Bobs Burgers Fan Theories"); // Creates a folder. Parameters: 1) Parent id/object 2) name. $myFile = $box->File->request("123456789", ["trashed_at","modified_at"]); // Request file object with 2 extra fields trashed_at & modified_at
可以在每个这些管理器上执行类似的调用,详细说明将在v0.2.1发布时提供,届时将专注于实现所有管理器之间共享的核心操作,如创建或删除对象。
交换令牌
完整的访问令牌可以交换为具有有限权限的令牌,以传递到不太安全或不受信任的服务或环境(例如客户端)。有关作用域参数的更多信息,请参阅Box文档中的作用域。如果省略令牌参数,则使用访问令牌。令牌只能交换为更受限的令牌。如果省略文件夹参数,则使用旧令牌的根文件夹。
$oldToken = $box->getAccessToken(); $folder = "0"; // Root folder $scope = ["root_readonly"]; $readonly_token = $box->requestExchangeToken($scope, $folder, $oldToken);