Получение нового токена доступа с использованием токена обновления, уже полученного в googledrive api

Я использую Gooogledrive Api с php. Используя его, я получил токен обновления из части учетных данных. Срок действия токена доступа истекает через 3600 секунд. Мой вопрос заключается в том, как получить новый токен доступа из этого токена обновления. Я использовал метод, указанный в php-клиенте Google. библиотека. Я вызвал функцию refreshtoken ('refreshtoke') apiclient. Мой код следующий

$client = new apiClient();
$client->setClientId('my-client-id');
$client->setClientSecret('my client-secret-key');
$client->setRedirectUri('my redirect uri');



$client->refreshToken('MY-retrieved-refresh-token');

Но я получаю следующую ошибку: Неперехваченное исключение 'apiAuthException' с сообщением 'Ошибка обновления токена OAuth2, сообщение: '{ "error" : "invalid_grant".**

Пожалуйста, помогите мне. Все остальное работает нормально. Но срок действия токена доступа истекает через 3600 секунд и не обновляется.


person trim kaur    schedule 29.08.2012    source источник
comment
Вы устанавливаете свой токен доступа и обновления? Я не вижу строку $client-›SetAccessToken($tokens), где $tokens — это токены доступа и обновления в jSON.   -  person vicrabb    schedule 30.08.2012
comment
Спасибо, vicrabb. Я понял вашу точку зрения.   -  person trim kaur    schedule 30.08.2012
comment
Было ли это или у вас все еще есть проблема?   -  person vicrabb    schedule 30.08.2012
comment
Привет @vicrabb, у меня та же проблема, не могли бы вы помочь мне с примером, в Интернете так много всего, но не все ясно. Заранее большое спасибо!   -  person mongotop    schedule 21.11.2012
comment
Когда вам нужно обновить токены, вам нужно, чтобы они были установлены. Если вы не помещаете строку $client-›SetAccessToken($tokens) (с $tokens, содержащими ваши токены доступа и обновления в jSON), у вас нет грантов для их обновления. У меня нет примера, так как я не использую функцию refreshToken().   -  person vicrabb    schedule 21.11.2012
comment
Код выглядит правильно (см. code.google.com/p/google-api-php-client/source/browse/trunk/src/), чтобы узнать, как работает обновление. Вы уверены, что идентификатор клиента/секрет/URI перенаправления верен? Они должны точно совпадать с тем, что вы использовали, когда грант был впервые выдан.   -  person Steve Bazyl    schedule 05.04.2013


Ответы (1)


//после этой строки кода

 $client->refreshToken('MY-retrieved-refresh-token');

//сделай это

 $token = $client->getAccessToken(); 

// это даст вам строку кодирования json, которая будет иметь доступ, токен обновления, носитель и т. д.

person Abdul Mannan    schedule 23.04.2013
comment
о боже .... после почти целого месяца отладки этой проблемы у меня были эти две строки задом наперед. После их переключения все теперь работает без необходимости повторной аутентификации каждый раз, когда срок действия токена доступа истекает. Большое спасибо за публикацию этого Джоша. - person EHerman; 18.07.2014