first commit

This commit is contained in:
2026-01-25 18:18:09 +08:00
commit 509312e604
8136 changed files with 2349298 additions and 0 deletions

106
components/Oceanengine.php Normal file
View File

@ -0,0 +1,106 @@
<?php
namespace app\components;
use app\models\Oauth;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use yii\base\Component;
class Oceanengine extends Component
{
const CACHE_KEY = 'oceanengine_cache';
public function getAccessToken($adminUid)
{
return Oauth::find()->where(['uid' => $adminUid])->one()->access_token;
}
public function getRefreshToken($adminUid)
{
return Oauth::find()->where(['uid' => $adminUid])->one()->refresh_token;
}
/**
*
* 获取授权账号下的子账号
* @param $adminAccountId
*
* @return array
*/
public function getAdminChildAccount($adminAccountId): array
{
$client = new Client();
$headers = [
'Access-Token' => $this->getAccessToken($adminAccountId)
];
$request = new Request('GET',
'https://api.oceanengine.com/open_api/oauth2/advertiser/get/',
$headers);
$res = $client->sendAsync($request)->wait();
return json_decode($res->getBody(), true);
}
/**
* 获取本地推用户
*
* @param $adminUid
*
* @return array
*/
public function getAccountLocal($adminUid): array
{
$client = new Client();
$headers = [
'Access-Token' => $this->getAccessToken($adminUid)
];
$request = new Request('GET', 'https://ad.oceanengine.com/open_api/2/customer_center/advertiser/list/?account_source=LOCAL&cc_account_id=1742303335399432&filtering=%7B%22account_name%22%3A%22%22%7D&page=1&page_size=100', $headers);
$res = $client->sendAsync($request)->wait();
return json_decode($res->getBody(), true);
}
/**
* 获取最新的线索
*/
public function getClue($adminUid, array $accountId, $startTime, $endTime, $page = 1)
{
$client = new Client();
$headers = [
'Content-Type' => 'application/json',
'Access-Token' => $this->getAccessToken($adminUid)
];
$accounts = implode(',', $accountId);
$body = '{
"local_account_ids": [
' . $accounts . '
],
"start_time": "' . $startTime . '",
"end_time": "' . $endTime . '",
"page": ' . $page . ',
"page_size": 100
}';
$request = new Request('POST', 'https://api.oceanengine.com/open_api/2/tools/clue/life/get/', $headers, $body);
$res = $client->sendAsync($request)->wait();
return json_decode($res->getBody(), true);
}
public function refreshAccessToken($adminUid)
{
$client = new Client();
$headers = [
'Content-Type' => 'application/json'
];
$body = '{
"app_id": ' . \Yii::$app->params['app_id'] . ',
"secret": "' . \Yii::$app->params['secret'] . '",
"refresh_token": "' . $this->getRefreshToken($adminUid) . '"
}';
$request = new Request('POST',
'https://api.oceanengine.com/open_api/oauth2/refresh_token/',
$headers, $body);
$res = $client->sendAsync($request)->wait();
return json_decode($res->getBody(), true);
}
}