1. Go to this page and download the library: Download jiangwang/ad-ocean-sdk library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use AdOceanSdk\Application;
use AdOceanSdk\RequestClient;
final class OceanRequestClient extends RequestClient
{
}
$app = Application::init(OceanRequestClient::make());
use AdOceanSdk\Application;
use AdOceanSdk\SdkConfig;
use GuzzleHttp\Client;
use GuzzleHttp\HandlerStack;
$stack = HandlerStack::create();
$httpClient = new Client([
'base_uri' => 'https://api.oceanengine.com/',
'timeout' => 20,
'handler' => $stack,
]);
$config = SdkConfig::make()
->setHttpClient($httpClient)
->setAccessToken('your-access-token');
$app = Application::init(config: $config);
use AdOceanSdk\Kernel\Middleware\MiddlewareInterface;
use AdOceanSdk\Kernel\Middleware\RequestContext;
use GuzzleHttp\Promise\PromiseInterface;
final class TraceMiddleware implements MiddlewareInterface
{
public function process(RequestContext $context, callable $next): PromiseInterface
{
$headers = $context->options['headers'] ?? [];
$headers['X-Trace-Id'] = uniqid('trace_', true);
return $next($context->withOption('headers', $headers));
}
}
$client = Application::init()->client();
$client->addMiddleware(new TraceMiddleware());
use AdOceanSdk\Kernel\Middleware\ApiErrorMiddleware;
$client = Application::init()->client();
$client->pipeline()->insertBefore(
ApiErrorMiddleware::class,
new TraceMiddleware(),
);
use AdOceanSdk\Kernel\Middleware\MiddlewareInterface;
use AdOceanSdk\Kernel\Middleware\RequestContext;
use GuzzleHttp\Promise\PromiseInterface;
final class AccessTokenMiddleware implements MiddlewareInterface
{
public function process(RequestContext $context, callable $next): PromiseInterface
{
$headers = $context->options['headers'] ?? [];
$advertiserId = $context->params['advertiser_id'] ?? null;
if ($advertiserId !== null) {
$headers['Access-Token'] = $this->resolveTokenByAdvertiserId((int) $advertiserId);
}
return $next($context->withOption('headers', $headers));
}
private function resolveTokenByAdvertiserId(int $advertiserId): string
{
// 从缓存/数据库中读取当前 advertiser 对应的 token
return 'resolved-token';
}
}
$config = \AdOceanSdk\SdkConfig::make()
->setHttpClient(new \GuzzleHttp\Client(['base_uri' => 'https://api.oceanengine.com/']))
->addMiddleware(new AccessTokenMiddleware());
$app = \AdOceanSdk\Application::init(config: $config);