2016-05-06 7 views
0

Я пытаюсь разрешить моему приложению читать Google-диск пользователей, но продолжать работать над этой проблемой. Вот мой код:invalid_grant: Код уже был выкуплен. Google Oauth

session_start(); 

$client = new Google_Client(); 
$client->setClientId(CLIENT); 
$client->setClientSecret(SECRET); 
$client->setRedirectUri(REDIRECT); 
$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY); 

if (! isset($_GET['code'])) { 
    $auth_url = $client->createAuthUrl(); 
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL)); 
} else { 
    $client->authenticate($_GET['code']); 
    $_SESSION['access_token'] = $client->getAccessToken(); 
    //$redirect_uri = 'http://'.$_SERVER['HTTP_HOST']; 
    //header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 
} 

Я понимаю, что мое приложение уже получило токен, и оно уже было погашено. Мой вопрос в том, как я могу получить доступ к токену обновления и вместо этого передать это приложение? Я также прочитал, что clearToken (контекст, токен), делает трюк, но я не знаю, где реализовать это в моем коде и с каким параметром контекста.

ответ

0

"получил токен, и он уже был погашен" Вы имеете в виду код доступа?

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

Если вы забыли сохранить токен обновления, вам необходимо отменить доступ и начать заново.

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