input('customer_id'); // 需要绑定的广告账号 ID $thirdUserId = $request->input('third_user_id'); // bps_third_user的id $googleOAuthService = new GoogleOAuthService(); $hasThirdUser = $googleOAuthService->bindThirdUserAdvertiser($customerId, $thirdUserId); if (!$hasThirdUser) { return $this->errorResponse(300, 'Invalid state parameter'); } return $this->successResponse($hasThirdUser); } public function getCustomerList(Request $request) { $thirdUserId = $request->input('third_user_id'); // bps_third_user的id $googleOAuthService = new GoogleOAuthService(); $hasThirdUser = $googleOAuthService->getCustomerList($thirdUserId); if (!$hasThirdUser) { return $this->errorResponse(300, 'Invalid state parameter'); } return $this->successResponse($hasThirdUser); } public function accessibleCustomers(Request $request) { $options = $request->all(); $options['refresh_token'] = $request->refresh_token; $options['login_customer_id'] = $request->login_customer_id; // 继续处理 Google Ads API 操作 return $this->listAccessibleCustomers($options); } public function accountHierarchy(Request $request) { $options = $request->all(); $options['refresh_token'] = $request->refresh_token; $options['login_customer_id'] = $request->login_customer_id; // 继续处理 Google Ads API 操作 return $this->getAccountHierarchy($options); } //管理用户访问权限 public function accountAccess(Request $request) { $options = $request->all(); $options['refresh_token'] = $request->refresh_token; $options['login_customer_id'] = $request->login_customer_id; // 继续处理 Google Ads API 操作 return $this->getAccountAccess($options); } /** * 关联广告客户ID * @throws ApiException */ public function listAccessibleCustomers($options): Response { $resourceName = $this->googleAdsAccountService->runListAccessibleCustomers($options); return $this->successResponse(['links_resource_name' => $resourceName]); } /** * 广告主体下层级账号 * @throws ApiException */ public function getAccountHierarchy($options): Response { // dump($options); $resourceName = $this->googleAdsAccountService->runGetAccountHierarchy($options); return $this->successResponse(['links_resource_name' => $resourceName]); } /** * 管理用户访问权限 * @throws ApiException */ public function getAccountAccess($options): Response { // dump($options); $resourceName = $this->googleAdsAccountService->runGetAccountAccess($options); return $this->successResponse(['links_resource_name' => $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 ]); } }