where('third_type', 'google') ->find(); if (!$thirdUser || !$thirdUser->access_token) { dump('not found third user'); return; } $option = []; $option['refresh_token'] = $thirdUser->access_token; // dump($option); // $listAccessibleCustomers = $this->googleAdsAccountService->runListAccessibleCustomers($option); // dump($listAccessibleCustomers); // if (getenv('GOOGLE_DEVELOP_TOKEN_LEVEL') === 'test') { // if (in_array(1509096882, $listAccessibleCustomers)) { // $option['manager_customer_id'] = 1509096882; //开发者 // $option['login_customer_id'] = 1509096882; // } // if (in_array(1401879025, $listAccessibleCustomers)) { // $option['manager_customer_id'] = 1401879025; //开发者 // $option['login_customer_id'] = 1401879025; // } // }else{ //正式开发者令牌2个参数默认不赋值 // } $allRootAccounts = $this->googleAdsAccountService->runGetAccountHierarchy($option); // dump($allRootAccounts); foreach ($allRootAccounts as $rootAccountId => $accounts) { foreach ($accounts as $account) { // $customerId = $account['customer_id']; // dump($customerId, $thirdUser->id, $rootAccountId, $account); // if($account['customer_id'] == 1509096882)continue; $this->googleOAuthService->saveThirdUserAdvertiser($account['customer_id'], $thirdUser->id, $rootAccountId, $account,$thirdUser->merchant_id); } } $this->googleOAuthService->updateThirdUserDefault($thirdUser->id, 't'); // return $this->successResponse($allAccounts); } //添加某个root广告账号的全部层级账号 public function addRootCustomers() { // dump($options); $thirdUser = ThirdUser::where('is_default', 'f')->where('third_type', 'google') ->find(); if (!$thirdUser || !$thirdUser->access_token) { dump('not found third user'); return; } $option = []; $option['refresh_token'] = $thirdUser->access_token; $listAccessibleCustomers = $this->googleAdsAccountService->runListAccessibleCustomers($option); foreach ($listAccessibleCustomers as $rootAccountId) { $option['manager_customer_id'] = $rootAccountId; //开发者 $option['login_customer_id'] = $rootAccountId; try { // 获取当前 rootAccountId 的所有账户 $allAccountsByRoot = $this->googleAdsAccountService->runGetAccountHierarchy($option); dump($allAccountsByRoot,333); foreach ($allAccountsByRoot as $rootId => $accounts) { foreach ($accounts as $account) { $this->googleOAuthService->saveThirdUserAdvertiser( $account['customer_id'], $thirdUser->id, $rootId, $account, $thirdUser->merchant_id ); } } // 绑定的授权主体全部账号更新后将状态从 'f' 更新为 't' $this->googleOAuthService->updateThirdUserDefault($thirdUser->id, 't'); } catch (\Exception $e) { // 记录错误日志并跳过当前循环 Log::error("Error processing rootAccountId {$rootAccountId}: " . $e->getMessage()); continue; } //绑定的授权主体全部账号更新后 将f改成t $this->googleOAuthService->updateThirdUserDefault($thirdUser->id, 't'); } // return $this->successResponse($allAccounts); } /** * get assets * @throws ApiException */ public function getAccountHierarchy($options) { $resourceName = $this->googleAdsAccountService->runGetAccountHierarchy($options); return $this->successResponse(['links_resource_name' => $resourceName]); $customers = $this->googleOAuthService->getGoogleAdCustomers([]); foreach ($customers as $customerId) { $googleAdsAssetService = new GoogleAdsAssetService($customerId); $resourceName = $googleAdsAssetService->runListAssets($customerId); } // return $this->successResponse(['ads_list' => $resourceName]); } // 可以加入一些公共方法 protected function successResponse($data): Response { return Json([ 'code' => 0, 'msg' => 'ok', 'data' => $data, ]); } protected function errorResponse($code, $message, $data = []): Response { return Json([ 'code' => $code, 'msg' => $message ?: 'error', 'data' => $data ]); } }