2016-05-06 13 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

"トークンを受信しました。既に償還されました。" アクセスコードですか?

オフラインアクセスを要求した場合、アクセスコードを使用すると、リフレッシュトークンが返されます。リフレッシュトークンは、必要なときに安全に保存する必要があります。

リフレッシュトークンを保存していない場合は、アクセスを取り消してもう一度開始する必要があります。

関連する問題