Я пытаюсь создать форму, в которой люди могут выбрать свою учетную запись Google Analytic и учетную запись Google Adwords. Я сделал с Google Analytic, но проблема возникает, когда я добавляю Google Adwords API. Вот ошибка
PHP Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Cannot have both service account flow and installed/web application flow credential values set.' in /xxx/vendor/googleads/googleads-php-lib/src/Google/AdsApi/Common/OAuth2TokenBuilder.php:209
Я попытался получить clientId и clientSecret от Google API Client, а затем использовать их в OAuth2TokenBuilder от Google Adwords. Также я уже добавляю область действия https://www.googleapis.com/auth/adwords, когда устанавливаю клиента.
class My_Google_Analytics{
public $client;
public $analytics;
public function __construct(){
$this->client = new Google_Client();
$this->client->setAuthConfig(SA_PLUGIN_PATH . '/client_secret.json');
$this->client->addScope(Google_Service_Oauth2::USERINFO_PROFILE);
$this->client->addScope(Google_Service_Oauth2::USERINFO_EMAIL);
$this->client->addScope(Google_Service_Analytics::ANALYTICS);
$this->client->addScope(Google_Service_Analytics::ANALYTICS_MANAGE_USERS);
$this->client->addScope('https://www.googleapis.com/auth/adwords');
$this->_connect();
}
}
class My_Google_Adwords{
public $session;
public function __construct($email, $client_id, $client_secret){
$oAuth2Credential = (new OAuth2TokenBuilder())
->fromFile(SA_PLUGIN_PATH .'/adsapi_php.ini')
->withClientId($client_id)
->withClientSecret($client_secret)
->withImpersonatedEmail($email)
->withJsonKeyFilePath(SA_PLUGIN_PATH . '/json-key-file.json')
->withScopes('https://www.googleapis.com/auth/adwords')
->build();
$soapSettings = (new SoapSettingsBuilder())
->withSslCaFile(SA_PLUGIN_PATH . '/cacert.pem')
->build();
$this->session = (new AdWordsSessionBuilder())
->fromFile(SA_PLUGIN_PATH .'/adsapi_php.ini')
->withOAuth2Credential($oAuth2Credential)
->build();
}
}
Я уже установил ключ разработчика в adsapi_php.ini
Я хочу получить список идентификаторов клиентов Google Adwords, которыми этот подключенный аккаунт управляет с помощью класса CustomerService. Но, по крайней мере, я должен сначала подключиться к Google Adwords. Я все еще новичок в этом Google API, поэтому я буду благодарен за любые комментарии здесь. Спасибо