playtini/keitaro-client

Keitaro 客户端:点击 API,管理 API

2.15.0 2024-06-26 16:11 UTC

README

Keitaro 是一个用于联盟和效果营销的工具。

它有 2 个 API:点击 API,管理 API。

维护者

该库由 Playtini 创建和支持。

我们正在招聘市场营销人员(FB、Tiktok、UAC、应用内、Google)和开发者(PHP、JS):playtini.ua/jobs

安装

composer require playtini/keitaro-client

点击 API

在您的服务器上接受流量,让 Keitaro 跟踪和路由您的流量。

点击 API 在 Pro 和 Business Keitaro 版本中可用。

点击 API 文档

使用方法

use Playtini\KeitaroClient\ClickApi\KeitaroClickApiClient;
use Playtini\KeitaroClient\ClickApi\KeitaroParams;
use Playtini\KeitaroClient\ClickApi\KeitaroRequest;
use Playtini\KeitaroClient\Http\KeitaroHttpClient;
use Symfony\Component\HttpClient\CurlHttpClient;
use Symfony\Component\HttpFoundation\Request;

require_once(__DIR__ . '/vendor/autoload.php');

$keitaroHttpClient = new KeitaroHttpClient(new CurlHttpClient(), 'https://keitaro.example.com'); // change to your TDS domain
$keitaroRequest = KeitaroRequest::create(Request::createFromGlobals()),
$keitaroParams = KeitaroParams::createFromKeitaroRequest($keitaroRequest, 'CAMPAIGN_TOKEN_HERE'); // change campaign token
$clickApiClient = new KeitaroClickApiClient($keitaroHttpClient, $keitaroRequest, $keitaroParams);
$response = $clickApiClient->createResponse($clickApiClient->getResult());
$response->send();

如果您不知道活动令牌但知道活动别名(TDS 链接中的唯一 URL 部分 - 例如 https://keitaro.example.com/THIS_IS_ALIAS )则可以使用 KeitaroClickApiTokenResolver 通过管理 API 获取令牌。

use Playtini\KeitaroClient\AdminApi\KeitaroAdminApiClient;
use Playtini\KeitaroClient\ClickApi\KeitaroClickApiTokenResolver;
use Playtini\KeitaroClient\Http\KeitaroHttpClient;
use Symfony\Component\HttpClient\CurlHttpClient;

$keitaroHttpClient = new KeitaroHttpClient(new CurlHttpClient(), 'https://keitaro.example.com'); // change to your TDS domain
$adminClient = new KeitaroAdminApiClient($keitaroHttpClient, 'ADMIN_API_KEY_HERE'); // change api key
$resolver = new KeitaroClickApiTokenResolver($adminClient);
$resolver->getCampaignToken('test-tds')

对于依赖注入,您可以使用 KeitaroClickApiClientFactory

管理 API

在不使用 UI 的情况下查看和编辑 Keitaro 的数据。

管理 API 仅在 Business Keitaro 版本中可用。

管理 API 文档

使用方法

use Playtini\KeitaroClient\AdminApi\KeitaroAdminApiClient;
use Playtini\KeitaroClient\Http\KeitaroHttpClient;
use Symfony\Component\HttpClient\CurlHttpClient;

require_once(__DIR__ . '/vendor/autoload.php');

$keitaroHttpClient = new KeitaroHttpClient(new CurlHttpClient(), 'https://keitaro.example.com'); // change to your TDS domain
$adminClient = new KeitaroAdminApiClient($keitaroHttpClient, 'ADMIN_API_KEY_HERE'); // change api key

print_r($adminClient->campaigns());

警告!仅实现了几个端点。如果您需要更多,请提交问题,我们将尽快实现。

Symfony 配置示例

config/services.yaml

    Playtini\KeitaroClient\Http\KeitaroHttpClient:
        bind:
            $trackerUrl: '%env(KEITARO_TRACKER_URL)%'

    Playtini\KeitaroClient\AdminApi\KeitaroAdminApiClient:
        bind:
            $adminApiKey: '%env(KEITARO_ADMIN_API_KEY)%'

    Playtini\KeitaroClient\ClickApi\KeitaroClickApiClientFactory: {public: true}
    Playtini\KeitaroClient\ClickApi\KeitaroClickApiTokenResolver: {public: true}
KEITARO_TRACKER_URL=https://keitaro.example.com
KEITARO_ADMIN_API_KEY=aaa111bbb222aaa111bbb222

请勿忘记在环境变量中设置实际值。

点击 API 控制器方法

public function __invoke(
    string $slug,
    Request $request,
    KeitaroClickApiClientFactory $clientFactory,
    KeitaroClickApiTokenResolver $apiTokenResolver,
): Response
{
    $client = $clientFactory->create(
        request: $request,
        campaignToken: $apiTokenResolver->getCampaignToken($slug), // it's cached
    );
    $client->params->set('log', 1);

    return $client->createResponse($client->getResult());
}

管理 API 控制器方法

public function __invoke(KeitaroAdminApiClient $keitaroAdminApiClient): JsonResponse
{
    $campaigns = $keitaroAdminApiClient->campaigns();

    $tokens = [];
    foreach ($campaigns as $campaign) {
        $tokens[$campaign->alias] = $campaign->token;
    }

    return new JsonResponse($tokens);
}