我一直在使用 Google Analytics API (V3) ,并且遇到了一些错误。首先,一切设置正确,并与我的测试帐户工作。但是当我想从另一个配置文件 ID (相同的谷歌帐户/GA 帐户)中获取数据时,我得到一个403错误。奇怪的是,来自一些 GA 帐户的数据将返回数据,而其他帐户将生成此错误。
我已经撤销了令牌并再次进行了身份验证,现在看起来我可以从我所有的帐户中获取数据了。问题解决了吗?没有。当访问密钥过期时,我将再次遇到同样的问题。
如果我没有理解错误,那么可以使用 resresh Token 获得一个新的身份验证令牌。
问题是,当我跑步的时候:
$client->refreshToken(refresh_token_key)
返回以下错误:
Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }'
我已经检查了 resh Token 方法背后的代码,并将请求跟踪到“ 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
这是一个错误,还是我完全误解了什么?