Позвольте мне начать здесь. API Google Adwords не работает со стандартным методом API Google Oauth. У этого есть свое. Пожалуйста, не отвечайте на использование этой библиотеки или ее методы разные.API Google Adwords. Как обновить токен с помощью библиотеки PHP
ОК, за последние пару дней я интегрировал код метода GoogleAwords API OAuth в код моей компании. Я могу получить доступ и обновить токен с сервера без проблем. Токены доступа хороши в течение 1 часа, а затем необходимо обновить.
// oauth 2 config
$credentials= array(
'client_id' => $config['id'],
'client_secret' => $config['secret'],
'access_token' => $params['access_token'],
'refresh_token' => $params['refresh_token']
);
$user = new \AdWordsUser(null, $adwords['dev_token'],
$adwords['useragent'], null, null, $credentials);
Приведенный выше код работает должным образом с использованием нового токена. Если я возьму объект $user
и попытаюсь получить объект CustomerService из API, я могу вернуть данные. Однако через час токен идет плохо, и я больше не могу его использовать.
Я искал Google API API AdWords (через группы Google), а также общий поиск Google. Единственным кодом, который я смог найти, является этот код.
$client = $user->GetOAuth2Handler();
$credentials = $client->RefreshAccessToken($user->GetOAuth2Info());
$user->SetOAuth2Info($credentials);
Но когда я добавляю это, я всегда получаю эту ошибку.
{ "error" : "unauthorized_client" }
Я в полной растерянности ...
Также, пожалуйста, не я не использовать auth.ini мы используем наши собственные конфигурационные файлы и добавлять параметры к объектам API.
Вы посмотрели [в коде, предоставленном google] (https://raw.githubusercontent.com/googleads/googleads-php-lib/master/examples/AdWords/Auth/GetRefreshToken.php) для этого конкретного задача? – Ohgodwhy
Этот код должен «GET» обновить токен, а не использовать его для обновления токена доступа. Я уже разобрался, проблема ответит на мой вопрос. – thenetimp