我知道此问题已经发布过。但他们都没有答案。所以我重新发布了这个问题。 我正在尝试获取分析数据。但在进行身份验证后,我收到了访问令牌的“invalid_grant”错误。现在我有相同的代码工作了大约3个月,现在突然间我得到了这个问题。我已将刷新令牌保存在数据库中,并使用它来获取访问令牌。请求令牌是否有可能到期?请帮忙!
$oauth2token_url = "https://accounts.google.com/o/oauth2/token";
$clienttoken_post = array(
"client_id" => $client_id,
"client_secret" => $client_secret,
"refresh_token" => $refreshToken,
"grant_type" => 'refresh_token'
);
$authObj = getAccessToken($oauth2token_url, $clienttoken_post);
function getAccessToken($oauth2token_url, $clienttoken_post){
$curl = curl_init($oauth2token_url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$json_response = curl_exec($curl);
curl_close($curl);
$authObj = json_decode($json_response);
return $authObj;
}
令牌的响应:****************** is - stdClass Object
(
[error] => invalid_grant
)
答案 0 :(得分:1)
确定。我明白了。问题是,当用户授予应用程序权限时,刷新令牌会刷新。因此,如果用户授予权限(第二次),则刷新第一个刷新令牌(您已保存在数据库中或任何位置)。您所要做的就是每次获得权限时更新刷新令牌。