openpublicmedia/engaging-networks-php

Engaging Networks Services (ENS) API 的 PHP 客户端

0.10.0 2023-08-28 20:30 UTC

This package is auto-updated.

Last update: 2024-09-28 17:49:24 UTC


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_tokencache_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