我已经撤销了令牌并重新进行了身份验证,现在似乎我可以从所有帐户中获取数据。问题解决了吗?不是。由于访问密钥将过期,我将再次遇到相同的问题。
如果我理解正确,可以使用refreshToken获取新的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
这是一个错误还是我完全误解了什么?