bynder / bynder-php-sdk
Bynder PHP 库
Requires
- php: >= 5.6
- guzzlehttp/guzzle: ~6.0|~7.0
- league/oauth2-client: ^2.3
Requires (Dev)
- dev-master
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.9
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.1
- 2.0.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-update_composer_version_2.2.2
- dev-update_composer_version_2.2.1
- dev-update_composer_version_2.2.0
- dev-API-1824
- dev-API-1622
- dev-FS_upload_dev
- dev-bump_version
- dev-API-189
- dev-API-16
This package is auto-updated.
Last update: 2024-08-27 15:51:41 UTC
README
此 SDK 的主要目标是加快使用 PHP 的 Bynder 客户的集成速度。使其更容易连接到 Bynder API (https://bynder.docs.apiary.io) 并在该 API 上执行请求。
要求和依赖项
PHP SDK 需要以下内容才能完全工作
PHP >= 5.6
,不推荐使用较旧的 PHP 版本curl
,尽管如果您愿意,可以使用自己的非 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 请求选项。这可以通过在初始化配置对象时传递最后一个参数来完成
$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
所有与 Asset Bank 相关的调用,提供媒体管理的信息和访问权限。
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
样本文件功能测试
在 sample
目录中的脚本包含执行相应功能所需的代码。其目的是演示如何调用方法,并提供执行函数的便捷方法。
在 sample
目录中创建一个名为 sample_config.php
的文件。此文件将从样本文件中引用。
在运行样本文件之前,请确保所有值都已正确填写。
示例 sample_config.php
文件内容
<?php $bynderDomain = "portal.bynder.com"; $redirectUri = "https://google.com"; $clientId = <your OAuth2 client id>; $clientSecret = <your OAuth2 client secret>; $token = null; // provide corresponding values to be used within API calls // media id for info $MEDIA_ID_FOR_INFO = "C078E8EE-C13A-4DA5-86EC8D6F335364EB"; // media id for download url $MEDIA_ID_FOR_DOWNLOAD_URL = "C078E8EE-C13A-4DA5-86EC8D6F335364EB"; // media id for download url $MEDIA_ITEM_ID_FOR_SPECIFIC_DOWNLOAD_URL = "C83B261D-715F-4188-809FE1214175A753"; // media id for renaming $MEDIA_ID_FOR_RENAME = "C078E8EE-C13A-4DA5-86EC8D6F335364EB"; // media id for removal $MEDIA_ID_FOR_REMOVAL = "C078E8EE-C13A-4DA5-86EC8D6F335364EB"; // collection id to get assets for $GET_COLLECTION_ASSETS_ID = "615F03BB-D986-4786-B2C085D2F0718230"; // metaproperty id to get info for $METAPROPERTY_ID_FOR_INFO = "0D563E99-218C-4613-86232D416EB7EA8A"; // metaproperty option id to get info for $METAPROPERTY_OPTION_ID_FOR_INFO = "3C65AFA5-AC94-4223-A54757F373D209D6"; // metaproperty id to get dependency info for $METAPROPERTY_ID_FOR_DEPENDENCY_INFO = "0D563E99-218C-4613-86232D416EB7EA8A"; // metaproperty id for specific option dependency $METAPROPERTY_ID_FOR_SPECIFIC_OPTION_DEPEND = "0D563E99-218C-4613-86232D416EB7EA8A"; // metaproperty option id for specific option $METAPROPERTY_OPTION_ID_FOR_SPECIFIC_OPTION_DEPEND = "DF1CF731-EFDF-484D-84BFD5CF8835B9D7"; // media id used for creating asset usage $MEDIA_ID_FOR_ASSET_USAGE="C078E8EE-C13A-4DA5-86EC8D6F335364EB"; // integration id used for asset usage $INTEGRATION_ID_FOR_ASSET_USAGE="0191a303-9d99-433e-ada4-d244f37e1d7d"; ?>
在每个样本文件中,OAuth 凭据将从 sample_config.php
中读取。脚本将输出授权 URL 以导航到获取访问代码(不会自动打开浏览器,用户必须点击链接)。然后,将访问代码提供给终端提示以获取 API 调用之后的访问令牌。
命令行说明
请确保本地已安装 composer
和 php
。从根目录运行 composer install
以从 composer.json
安装包。导航到 sample
目录。
品牌样本
php BrandsSample.php
使用的方法
- getBrands()
集合样本
php CollectionsSample.php
使用的方法
- getCollections($query)
- getCollectionAssets($collectionId)
媒体样本
php MediaSample.php
使用的方法
- getDerivatives()
- getMediaList($query)
- getMediaInfo($mediaId)
- getMediaDownloadLocation($mediaId)
- getMediaDownloadLocationByVersion($mediaId, $version)
- getMediaDownloadLocationForAssetItem($mediaId, $itemId)
- modifyMedia($mediaId, $data)
- getMediaInfo($mediaId)
- deleteMedia($mediaId)
元属性样本
php MetapropertiesSample.php
使用的方法
- getMetaproperties()
- getMetaproperty($metapropertyId)
- getMetapropertyDependencies($metapropertyId)
- getMetapropertyOptions($query)
- getMetapropetryGlobalOptionDependencies()
- getMetapropertyOptionDependencies($metapropertyId)
- getMetapropertySpecificOptionDependencies($metapropertyId, $metapropertyOptionId, $array)
智能过滤器样本
php SmartFiltersSample.php
使用的方法
- getSmartfilters()
标签样本
php TagsSample.php
使用的方法
- getTags()
上传样本
php UploadsSample.php
使用的方法
- uploadFileAsync($data)
- getBrands()
使用样本
php UsageSample.php
使用的方法
- createUsage($data)
- getUsage($data)
- deleteUsage($data)
Docker 指令
样本文件可以在 Docker 容器中执行。Makefile 包含运行/构建 Docker 容器的相应命令。
Dockerfile.dev
文件用于容器。
Makefile 命令是在根目录中执行的。如果需要,则使用 sudo 运行。
如果需要,拉取最新的 composer
Docker 镜像 docker pull composer:latest
Makefile 命令
使用 Docker Compose 构建/启动 PHP SDK 的 Docker 容器
make run-php-sdk-docker
停止运行 PHP SDK 的 Docker 容器
make stop-php-sdk-docker
在 Docker 容器中运行样本文件(将 BrandsSample.php 替换为目标样本文件)
make execute-php-sdk-sample sample-file-name=BrandsSample.php