如何使用GoogleAPI客户端刷新令牌?
我一直在玩GoogleAnalyticsAPI(V3),并且遇到了一些错误。首先,所有的设置都是正确的,并与我的测试帐户一起工作。但是当我想从另一个配置文件ID(相同的Googleaccont/GA帐户)获取数据时,我会得到一个403错误。奇怪的是,来自某些GA帐户的数据将返回数据,而其他帐户将生成此错误。
我已经撤销了令牌并再次进行了身份验证,现在我似乎可以从我的所有帐户中获取数据。问题解决了?不。由于访问密钥将过期,我将再次遇到相同的问题。
如果我对事情的理解是正确的,人们可以使用新的Token获得一个新的身份验证Tooken。
问题是,当我跑:
$client->refreshToken(refresh_token_key)
返回以下错误:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
我检查了刷新方法背后的代码,并将请求跟踪到“apoAuth2.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
这是一个错误,还是我完全误解了什么?
九州编程
缥缈止盈