invalid_grant:代码已经兑换为Google Oauth


invalid_grant: Code was already redeemed 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(context,token),它起到了作用,但我不知道在我的代码中在哪里实现它,也不知道用什么上下文参数实现它。

"收到一个代币,并且已经兑换"你是说访问码吗?

假设您请求离线访问,那么兑换访问代码将返回一个刷新令牌,您应该在需要时安全存储该令牌。

如果您忘记存储刷新令牌,则需要撤销访问权限并重新启动。