affise/php-sdk

Affise API官方SDK

v0.1.1 2021-06-15 07:45 UTC

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文件