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

时间:2014-11-11 18:40:55

标签: java google-analytics-api google-oauth2 google-oauth-java-client

我正在使用Java中的google analytics api。我有一个代码从刷新令牌中获取访问令牌。我们将刷新令牌存储在数据库中,并在请求时检索访问令牌。

密码更改后,我们的请求令牌无效。所以,我通过浏览网址(https://developers.google.com/oauthplayground)并按照说明生成了一个新的refreshtoken。我得到了新的刷新令牌。现在,当我执行代码来检索访问令牌时,它会抛出空指针异常。以下是代码:

RefreshTokenRequest request = new GoogleRefreshTokenRequest(HTTP_TRANSPORT, JSON_FACTORY, refreshToken,
                    this.clientId, this.clientSecret);
            TokenResponse response = request.execute(); 

当调用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获取访问令牌。

1 个答案:

答案 0 :(得分:2)

这可能有你的答案:https://github.com/googleads/googleads-java-lib/issues/19

Github用户jyothi462表示他的NPE 最终是由使用错误的客户端ID和密码引起的。这也是我的问题。

通过更新错误消息解决了该问题,使其更具描述性。