当前位置: 首页 > 知识库问答 >
问题:

谷歌API-刷新令牌

干浩然
2023-03-14

我正试图在他过期后获得一个新的访问令牌。我已将收到的信息保存在银行中,作为第一次客户访问的回报:

{"access_token":"TOKEN","refresh_token":"TOKEN","token_type","承载","expires_in": 3600,"创建": 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令牌时出错,消息:

{“错误”:“无效的授权”}

共有1个答案

谭裕
2023-03-14
    $client->refreshToken($refreshToken);
    $newtoken=$client->getAccessToken();
    echo $newtoken."</br>";
 类似资料:
  • 我使用Google Calendar API在fullcalendar上显示事件(因此在我的视图中使用json对象)。我使用codeigniter php框架,控制器中有几个函数来创建新的客户机,然后在oauth2callback()函数中使用它来将代码交换为access_token,然后开始调用gcalendar()和gCalendar_events中的服务。我已经将accessType设置为脱

  • 我面临一个问题,以刷新谷歌访问令牌在服务器端。 我从谷歌认证服务器得到的响应只是403状态代码。信息是这样的 仅仅为了刷新访问令牌,在我的服务器上使用SSL是强制性的吗?它已经在我的本地服务器上测试过,没有附加任何SSL到它。

  • 我想使用谷歌作为OIDC协议的id提供商。我有一个简单的应用程序。它启动,正确地重定向到谷歌,然后返回到应用程序,打印用户详细信息并将其存储在会话中。但是,这种身份验证似乎来自id令牌,并且只有1h的过期时间 我的YML:

  • 调用execute方法时,它会引发以下异常: 谁能指出我哪里做错了?我能够从谷歌oAuth UI获得访问令牌。

  • 在我的Java/Ionic2应用程序中,我通过REST服务请求使用刷新令牌对Google Drive进行身份验证,然后使用access_type=offline,如下所述:https://developers.Google.com/identity/protocols/oauth2webserver#refresh。 服务器响应200 OK,所以它给我一个刷新和一个访问令牌,只是在我第一次请求访问

  • (联系人和日历有不同的代币) 同步脚本: $AccesStoken是一个序列化字符串,如下所示: 我做错了什么? 有趣的是,对于联系人来说,同步一直都很好(访问令牌的属性与日历同步中的属性相同)