Google Analytics:从刷新令牌获取访问令牌

4
我正在使用Java中的Google Analytics API。我有一段代码可以从刷新令牌中获取访问令牌。我们将刷新令牌存储在数据库中,请求时检索访问令牌。
密码更改后,我们的请求令牌变得无效。因此,我通过浏览网址(https://developers.google.com/oauthplayground)并按照说明操作生成了新的刷新令牌。我获得了新的刷新令牌。现在,当我执行代码以检索访问令牌时,它会抛出空指针异常。以下是代码:
RefreshTokenRequest request = new GoogleRefreshTokenRequest(HTTP_TRANSPORT, JSON_FACTORY, refreshToken,
                    this.clientId, this.clientSecret);
            TokenResponse response = request.execute(); 

当执行方法被调用时,它会抛出以下异常:
java.lang.NullPointerException
    at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:191)
    at com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127)
    at com.google.api.client.json.jackson2.JacksonFactory.createJsonParser(JacksonFactory.java:96)
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:85)
    at com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:81)
    at com.google.api.client.auth.oauth2.TokenResponseException.from(TokenResponseException.java:88)
    at com.google.api.client.auth.oauth2.TokenRequest.executeUnparsed(TokenRequest.java:287)
    at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:125)
    at com.google.api.client.googleapis.auth.oauth2.GoogleRefreshTokenRequest.execute(GoogleRefreshTokenRequest.java:75)
    at GARTest.main(GARTest.java:22)

请问有谁能指出我做错了什么?我可以从Google oAuth UI中获取访问令牌。


很抱歉,这是GoogleApi Java库的一个未解决问题:https://github.com/google/google-api-java-client/issues/932 如果您有任何解决方案,请分享。 - Artem
你不应该使用 OAuthplayground 来获取 RefreshToken,这应该是你代码的一部分。此外,更改密码不会影响 OAuth2 RefreshToken,这就是 OAuth 的全部意义。 - Linda Lawton - DaImTo
1个回答

2
这可能会有您的答案:https://github.com/googleads/googleads-java-lib/issues/19 Github用户jyothi462表示,他的NPE问题最终是由于使用了错误的客户端ID和密钥引起的。这也是我的情况。
该问题已通过更新错误消息并使其更加具有描述性来解决。

你所提到的堆栈跟描述中的非常不同。更接近的一个是:https://github.com/google/google-api-java-client/issues/932 - Artem

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接