Google OAuth 2.0访问令牌请求错误



我在GitHub上有一个小的谷歌应用引擎项目,我几个月前"完成"了。

它一直工作到现在(最后一次使用是2-3个月前),但似乎谷歌改变了一些东西,我不知道真正的问题是什么,我怎么解决它

问题在这个文件中(第59行):文件

代码:

public class TokenManager {
static private final String TOKEN_URL = "https://www.googleapis.com/oauth2/v3/token";
static private final String ENC = "UTF-8";
private String _refreshToken;
private String _clientId;
private String _clientSecret;
private final Gson _gson = new Gson();
private TokenData _tokenData = new TokenData();
...
private void refreshAccessToken() throws Exception {
    String payload = "client_secret=$client_secret&grant_type=refresh_token&refresh_token=$refresh_token&client_id=$client_id";
    payload = payload.replace("$client_secret", URLEncoder.encode(_clientSecret, ENC));
    payload = payload.replace("$refresh_token", URLEncoder.encode(_refreshToken, ENC));
    payload = payload.replace("$client_id", URLEncoder.encode(_clientId, ENC));
    HTTPRequest request = new HTTPRequest(new URL(TOKEN_URL), HTTPMethod.POST);
    request.setPayload(payload.getBytes(ENC));
    String stringData = new String(URLFetchServiceFactory.getURLFetchService().fetch(request).getContent(), ENC);
    _tokenData = _gson.fromJson(stringData, TokenData.class);
}

}

问题与访问令牌请求有关。(我使用离线刷新令牌)

响应如下:

{
    "error": "invalid_grant",
    "error_description": "Bad Request",
    "error_uri": ""
}
  1. 我试图修改TOKEN_URL为"https://www.googleapis.com/oauth2/v4/token"
  2. 我已经尝试生成新的刷新令牌。
  3. 我尝试创建新的OAuth客户端ID。

所有的尝试都有相同的问题。

有谁知道是怎么回事吗?

谢谢你的帮助!

我找到问题了。

可能是我以前的刷新令牌过期了。我试着生成一个新的,但我误解了这个过程,我认为"代码"参数作为刷新令牌。

https://developers.google.com/identity/protocols/OAuth2WebServer离线

相关内容

  • 没有找到相关文章

最新更新