【问题标题】:refresh token with google api client not working使用 google api 客户端刷新令牌不起作用
【发布时间】:2016-11-07 14:14:55
【问题描述】:

在我的网站中,我有一个上传按钮,用于通过 api 将文件上传到谷歌驱动器。

这是我的代码:

$auth_code      = GOOGLEDRIVE_AUTH_CODE;
$access_token   = GOOGLEDRIVE_ACCESS_TOKEN;
$refresh_token  = GOOGLEDRIVE_REFRESH_TOKEN;
$client_id      = 'Google_App_Client_ID';
$client_secret  = 'Google_App_Client_Secret';
$redirect_uri   = 'Redirct_Url';

$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
$client->addScope("https://www.googleapis.com/auth/drive");
$service = new Google_Service_Drive($client);

if (isset($access_token) && $access_token) {
    $client->setAccessToken($access_token);
    if ($client->isAccessTokenExpired()) {
        $refresh_token = $client->getRefreshToken();
        $client->refreshToken($refresh_token);
        $access_token = $client->getAccessToken();
        $co->save('GDRIVE_ACCESS_TOKEN',$access_token);
        $co->save('GDRIVE_REFRESH_TOKEN',$refresh_token);
    }
} else {
    $authUrl = $client->createAuthUrl();
}

这行会报错

$client->refreshToken($refresh_token);

“刷新 OAuth2 令牌时出错,消息:'{ "error" : "invalid_grant" }'"

阅读错误消息,听起来令牌刷新突然不起作用。就像我说的,这个上传工具已经运行了好几个月了。

有什么想法吗?

谢谢, 弥敦道

【问题讨论】:

    标签: php google-api google-oauth google-api-php-client google-api-client


    【解决方案1】:

    无效授权

    1. 您的服务器时钟与 NTP 不同步。 (解决方法:检查服务器时间,如果不正确修复它。)

    如果不是这样,那么除了要求用户再次进行身份验证外,没有其他解决方法。刷新令牌已过期的可能原因。

    1. 用户已撤销您的访问权限。
    2. 刷新令牌已在六个月内未用于请求新的访问令牌。
    3. 已超出刷新令牌限制。应用程序可以请求多个刷新令牌。例如,这在用户想要在多台机器上安装应用程序的情况下很有用。在这种情况下,需要两个刷新令牌,每个安装一个。当刷新令牌的数量超过限制时,旧令牌将失效。如果应用程序尝试使用无效的刷新令牌,则会返回一个 invalid_grant 错误响应。每对唯一的 OAuth 2.0 客户端的限制为 25 个刷新令牌(请注意,此限制可能会发生变化)。如果应用程序继续为同一客户/帐户对请求刷新令牌,一旦第 26 个令牌发出,之前发出的第 1 个刷新令牌将失效。第 27 个请求的刷新令牌将使之前发布的第 2 个令牌失效,依此类推。

    【讨论】:

      猜你喜欢
      • 2013-02-03
      • 2012-03-03
      • 1970-01-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 1970-01-01
      • 2018-04-22
      相关资源
      最近更新 更多