2015-12-22 2 views
0

Позвольте мне начать здесь. 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.

+0

Вы посмотрели [в коде, предоставленном google] (https://raw.githubusercontent.com/googleads/googleads-php-lib/master/examples/AdWords/Auth/GetRefreshToken.php) для этого конкретного задача? – Ohgodwhy

+0

Этот код должен «GET» обновить токен, а не использовать его для обновления токена доступа. Я уже разобрался, проблема ответит на мой вопрос. – thenetimp

ответ

0
{ "error" : "unauthorized_client" } 

Эта ошибка означает, что было указано другое приложение client_id google. Мы используем несколько приложений Google, и я скопировал и вставил код, забывая, что для Adwords мы используем новое приложение, в котором мы интегрируем другие API-интерфейсы google, все используют одно и то же приложение.

Смежные вопросы