openpublicmedia / engaging-networks-php
Engaging Networks Services (ENS) API 的 PHP 客户端
0.10.0
2023-08-28 20:30 UTC
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^6.0 || ^7.0
Requires (Dev)
- phpcompatibility/php-compatibility: ^9.3
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.4
- tochka-developers/array-file-cache: ^3.1
README
此库抽象了与Engaging Networks Services (ENS) APIs的交互。
实现API
安装
通过Composer安装
composer require openpublicmedia/engaging-networks-php
使用
REST API
OpenPublicMedia\EngagingNetworksServices\Rest\Client
查询REST API。客户端需要一个具有白名单IP地址和API令牌的API用户,并在目标Engaging Networks账户中。
请参阅REST API说明
示例
创建客户端
use OpenPublicMedia\EngagingNetworksServices\Rest\Client; $base_uri = 'https://ca.engagingnetworks.app/ens/service/'; $api_key = '11111111-2222-3333-4444-555555555555'; $client = new Client($base_uri, $api_key);
在创建客户端时提供缓存服务也是支持的(并推荐)。如果客户端具有缓存服务,它将用于缓存ENS REST API提供的认证令牌,并在令牌有效期内跨多个请求进行缓存。
首选PSR-16兼容的接口,但任何提供set($key, $value)
和get($key, $default)
方法的类都足够。
use OpenPublicMedia\EngagingNetworksServices\Rest\Client; use Tochka\Cache\ArrayFileCache; $base_uri = 'https://ca.engagingnetworks.app/ens/service/'; $api_key = '11111111-2222-3333-4444-555555555555'; $cache = new ArrayFileCache('.', 'my_awesome_cache'); $client = new Client($base_uri, $api_key, cache: $cache);
注意:ENS REST API令牌与生成令牌时使用的IP地址相关联。客户端提供默认的缓存键名称和过期数据。在处理来自不同IP地址的多个后端请求的配置中,可以使用cache_key_token
和cache_key_token_expire
参数来设置缓存键。
服务器1
use OpenPublicMedia\EngagingNetworksServices\Rest\Client; use Tochka\Cache\ArrayFileCache; $base_uri = 'https://ca.engagingnetworks.app/ens/service/'; $api_key = '11111111-2222-3333-4444-555555555555'; $cache = new ArrayFileCache('.', 'my_awesome_cache'); $client = new Client( $base_uri, $api_key, cache: $cache, cache_key_token: 'open_public_media.ens.rest.session_token_server_1', cache_key_token_expire: 'open_public_media.ens.rest.session_expire_server_1' );
服务器2
use OpenPublicMedia\EngagingNetworksServices\Rest\Client; use Tochka\Cache\ArrayFileCache; $base_uri = 'https://ca.engagingnetworks.app/ens/service/'; $api_key = '11111111-2222-3333-4444-555555555555'; $cache = new ArrayFileCache('.', 'my_awesome_cache'); $client = new Client( $base_uri, $api_key, cache: $cache, cache_key_token: 'open_public_media.ens.rest.session_token_server_2', cache_key_token_expire: 'open_public_media.ens.rest.session_expire_server_2' );
处理异常
提供了404响应和一般错误的自定义异常。这些异常中捕获了来自ENS REST API的附加信息。
use OpenPublicMedia\EngagingNetworksServices\Rest\Client; $base_uri = 'https://ca.engagingnetworks.app/ens/service/'; $api_key = '11111111-2222-3333-4444-555555555555'; $client = new Client($base_uri, $api_key); try { $results = $client->getPages(PageType::dc); } catch (Exception $e) { var_dump(get_class($e)); var_dump($e->getMessage()); var_dump($e->getCode()); var_dump($e->getErrorMessage()); var_dump($e->getErrorMessageId()); }
开发目标
有关向此项目贡献的信息,请参阅CONTRIBUTING。
v1
- ENS REST API客户端(
\OpenPublicMedia\EngagingNetworksServices\Rest\Client
) - API直接查询(
$client->request()
) - 结果/错误处理
- 页面服务
- 支持者服务