油石 / bynder-php-sdk
Bynder PHP 库
Requires
- php: >= 5.6
- guzzlehttp/guzzle: ~6.0|~7.0
- league/oauth2-client: ^2.3
Requires (Dev)
README
此 SDK 的主要目标是加快使用 PHP 的 Bynder 客户的集成速度。使其更容易连接到 Bynder API (https://bynder.docs.apiary.io) 并在该 API 上执行请求。
需求和依赖
PHP SDK 需要以下内容才能完全运行
PHP >= 5.6
,不推荐使用旧版本的 PHPcurl
,尽管如果您愿意,也可以使用自己的非 cURL 客户端
Composer 应该可以自动处理所有依赖项。
Composer 包
Bynder PHP SDK 作为 composer 包发布在 packagist 上,可在此处找到
https://packagist.org.cn/packages/bynder/bynder-php-sdk
安装
此 SDK 依赖于一些库才能工作,使用 Composer 安装时应自动处理一切。
要使用 Composer 安装 SDK。在项目的根目录中运行以下命令
composer require bynder/bynder-php-sdk
要使用 SDK,我们使用 Composer 的 autoload来自动包含所有文件
require_once('vendor/autoload.php');
如何使用它
这是一个如何从 Bynder 资产库中检索数据的简单示例。有关实现细节的更详细示例,请参阅 示例代码。
在向 Bynder API 发送任何请求之前,我们需要实例化 BynderApi 类,以下示例展示了如何使用 BynderApiFactory 构建一个 BynderApi 实例
$bynder = new BynderClient(new Configuration( $bynderDomain, $redirectUri, $clientId, $clientSecret ));
SDK 允许使用 Guzzle 请求选项。这可以通过在初始化 Configuration 对象时传递最后一个参数来完成
$requestOptions = ['proxy' => 'http://MY-PROXY.URL:PORT_NUM']; $bynderApi = BynderClient(new Configuration( ..., $requestOptions ));
在成功配置 BynderClient 服务后,我们需要获取 AssetBankManager 的实例,以便执行任何与 Bynder 资产库模块相关的 API 调用
$assetBankManager = $bynder->getAssetBankManager();
然后,我们可以开始向 API 发送请求,以下列出的是 可用方法 部分。获取所有 媒体项 的简短示例
$mediaList = $assetBankManager->getMediaList();
此调用将返回一个包含 Bynder 环境中所有媒体项的列表。请注意,一些调用接受查询数组以通过 API 调用参数筛选结果(有关更多详细信息,请参阅 Bynder API 文档)。例如,如果我们只想检索 2 张图片,则调用将如下所示
$mediaList = $assetBankManager->getMediaList( [ 'limit' => 2, 'type' => 'image' ] );
所有调用都是 异步的,这意味着它们将返回一个 Promise 对象,这使得它更灵活,可以调整到任何类型的应用。再次强调,有关更详细的示例,此存储库中有 应用用例 的示例。
可用方法
以下是在当前 Bynder PHP SDK 中可用的方法,有关调用更详细的说明,请参阅Bynder API 文档。
BynderClient
处理生成和设置访问令牌的过程,该令牌用于向 API 发送请求。还包含与用户相关的调用。
getAssetBankManager(); getAuthorizationUrl(); getAccessToken(); getUsers(); getUser($userId, $query); getCurrentUser(); getSecurityProfile($profileId);
AssetBankManager
所有与资产库相关的调用,提供媒体管理的信息和访问权限。
getBrands(); getMediaList($query); getMediaInfo($mediaId, $versions); getMetaproperties(); getMetaproperty($propertyId); getMetapropertyDependencies($propertyId); getMetapropertyOptions($query); getMetapropetryGlobalOptionDependencies(); getMetapropertyOptionDependencies($propertyId); getMetapropertySpecificOptionDependencies($propertyId, $optionId, $query); getTags(); getCategories(); getSmartfilters(); uploadFileAsync($data); deleteMedia($mediaId); modifyMedia($mediaId, array $data); getDerivatives(); getMediaDownloadLocation($mediaId, $type = 'original'); getMediaDownloadLocationByVersion($mediaId, $version); getMediaDownloadLocationForAssetItem($mediaId, $itemId, $hash = false); createUsage($query); getUsage($query); deleteUsage($query); getCollections($query); getCollectionAssets($collectionId);
测试
使用 Docker
构建 Docker 镜像并标记它
docker build -t bynder-php-sdk-tests
运行测试
docker run bynder-php-sdk-tests
本地运行
安装上述提到的依赖项(这将解决PHPUnit),然后您可以运行测试套件
./vendor/bin/phpunit tests
或运行单个测试文件
./vendor/bin/phpunit tests/UtilTest.php