如何使用谷歌API客户端刷新令牌?
我一直在玩Google Analytics API(V3),并遇到了som错误。首先,一切都设置正确,并使用我的测试帐户。但是,当我想从另一个配置文件ID(相同的Google Accont / GA帐户)获取数据时,我会收到403错误。奇怪的是,来自某些GA帐户的数据将返回数据,而其他帐户将生成此错误。
我已经吊销了令牌并再次进行身份验证,现在看来我可以从所有帐户中获取数据。问题解决了?不。由于访问密钥将过期,我将再次遇到相同的问题。
如果我理解正确,可以使用 resfreshToken 来获得新的 authenticationTooken。
问题是,当我运行时:
$client->refreshToken(refresh_token_key)
返回以下错误:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
我已经检查了 refreshToken 方法背后的代码,并将请求跟踪回“apiOAuth2.php”文件。正确发送所有参数。grant_type硬编码为方法中的“refresh_token”,因此我很难理解出了什么问题。参数数组如下所示:
Array ( [client_id] => *******-uqgau8uo1l96bd09eurdub26c9ftr2io.apps.googleusercontent.com [client_secret] => ******** [refresh_token] => 1\/lov250YQTMCC9LRQbE6yMv-FiX_Offo79UXimV8kvwY [grant_type] => refresh_token )
操作步骤如下。
$client = new apiClient();
$client->setClientId($config['oauth2_client_id']);
$client->setClientSecret($config['oauth2_client_secret']);
$client->setRedirectUri($config['oauth2_redirect_uri']);
$client->setScopes('https://www.googleapis.com/auth/analytics.readonly');
$client->setState('offline');
$client->setAccessToken($config['token']); // The access JSON object.
$client->refreshToken($config['refreshToken']); // Will return error here
这是一个错误,还是我完全误解了什么?