affise / php-sdk
Affise API官方SDK
v0.1.1
2021-06-15 07:45 UTC
Requires
- php: >=7.4
- ext-json: *
- guzzlehttp/guzzle: ^6.0 || ^7.0
- psr/http-client: ^1.0
- psr/http-factory: ^1.0
Requires (Dev)
- http-interop/http-factory-guzzle: ^1.0
- phpunit/phpunit: ^9.0
- vimeo/psalm: ^4.3
This package is auto-updated.
Last update: 2024-09-15 15:18:08 UTC
README
要求
- PHP >=7.4
- Guzzle >=6.0
- 任何PSR-17和PSR-18实现(可选)
安装
composer require affise/php-sdk
用法
创建api实例
use Affise\Sdk\Api; require_once __DIR__ . '/vendor/autoload.php'; $api = Api::create('https://YOUR_API_DOMAIN', 'YOUR_API_KEY');
调用端点
$response = $api->users->usersList(['limit' => 10]); var_dump($response->getStatus(), $response->getData());
$response = $api->statistics->byAdvertiser(['filter' => ['date_from' => '2020-12-20', 'date_to' => '2020-12-31',]]); var_dump($response->getStatus(), $response->getData());
上传文件
对于每个文件,请使用\Affise\Sdk\Transport\File
。
use Affise\Sdk\Transport\File; $response = $api->offerManaging->addOffer([ ... 'creativeFiles' => File::createFromFile('path/to/file'), ... ]); var_dump($response->getStatus(), $response->getData());
提供者列表
高级
提供者
每个提供者是一组分组的端点。
use Affise\Sdk\Transport\GuzzleTransport; use Affise\Sdk\Affiliate\AffiliateProvider; use Affise\Sdk\User\UserProvider; require_once __DIR__ . '/vendor/autoload.php'; $transport = new GuzzleTransport('https://YOUR_API_DOMAIN', 'YOUR_API_KEY'); $userProvider = new UserProvider($transport); $affiliateProvider = new AffiliateProvider($transport); $response = $userProvider->usersList(['limit' => 10]); var_dump($response->getStatus(), $response->getData()); $response = $affiliateProvider->affiliateList(['limit' => 10, 'page' => 5]); var_dump($response->getStatus(), $response->getData(), $response->getPagination()->getPage());
传输层
传输是HTTP客户端的抽象层。
use Affise\Sdk\Transport\GuzzleTransport; use Affise\Sdk\Transport\PsrTransport; use GuzzleHttp\Client; require_once __DIR__ . '/vendor/autoload.php'; $transport = new GuzzleTransport('https://YOUR_API_DOMAIN', 'YOUR_API_KEY'); // Or you can use psr adapter $transport = new PsrTransport( new Http\Factory\Guzzle\RequestFactory(), new Http\Factory\Guzzle\UriFactory(), new Http\Factory\Guzzle\StreamFactory(), new Client(), 'https://YOUR_API_DOMAIN', 'YOUR_API_KEY' ); $raw = $transport->get('/3.0/admin/users', ['limit' => 10]); var_dump($raw); $raw = $transport->post('/3.0/admin/user/api_key/594927bd7e28fe1c4a8b4567'); var_dump($raw);
您可以创建自己的传输。只需实现Affise\Sdk\Transport\TransportInterface
。
自定义api传输
use Affise\Sdk\Api; use Affise\Sdk\Transport\GuzzleTransport; require_once __DIR__ . '/vendor/autoload.php'; $api = new Api(new GuzzleTransport('https://YOUR_API_DOMAIN', 'YOUR_API_KEY'));
测试
./vendor/bin/phpunit tests
许可证
MIT许可证。阅读LICENSE文件。