Я пытаюсь получить новый access_token после того, как он истек. Я уже держать в банке информацию я получаю в ответ на первый клиентский доступ:Google API - Обновить токен
{"access_token": "TOKEN", "refresh_token": "TOKEN", "token_type", "Bearer", "expires_in": 3600, "created ": 1320790426}
После этого маркера истекает мне нужно подать заявку на новый, я делаю так:
$client = new Google_Client();
$client->setApplicationName(APPLICATION_NAME);
$client->setScopes(SCOPES);
$client->setAuthConfigFile(CLIENT_SECRET_PATH);
$client->setAccessType('offline');
$token['access_token'] = $db->dados[0]['use_access_token'];
$token['refresh_token'] = $db->dados[0]['use_refresh_token'];
$token['token_type'] = $db->dados[0]['use_token_type'];
$token['expires_in'] = $db->dados[0]['use_expires_in'];
$token['created'] = $db->dados[0]['use_created'];
$client->setAccessToken(json_encode($token));
if ($client->isAccessTokenExpired()) {
echo "Expired !";
$client->refreshToken($client->getRefreshToken());
//$accessToken = $client->authenticate($authCode);
} else {
...
}
проблема заключается в том, что всегда возвращает эту ошибку: Ошибка освежающей маркер OAuth2, сообщение:
{ "error" : "invalid_grant" }
как ди d вы получаете, извлекаете и сохраняете токен обновления в базе данных (т. значение, которое вы извлекаете с помощью '$ db-> dados [0] ['use_refresh_token']'); вы можете захотеть вставить этот код также –