【问题标题】:Google Analytics : Get access token from refresh tokenGoogle Analytics:从刷新令牌中获取访问令牌
【发布时间】:2015-01-08 10:14:12
【问题描述】:

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

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

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

【问题讨论】:

  • 恐怕这是 GoogleApi java 库的未解决问题:github.com/google/google-api-java-client/issues/932 请分享,如果您有任何解决方案。
  • 您不应该使用 Oauthplayground 来获取 RefreshToken,这应该是您代码的一部分。此外,密码更改不会影响 OAuth2 RefreshToken,这是 OAuth 的重点。

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


【解决方案1】:

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

Github 用户 jyothi462 说他的 NPE 最终是由于使用了错误的客户端 ID 和密码。这也是我的问题。

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

【讨论】:

猜你喜欢
  • 2013-06-14
  • 2017-03-22
  • 2019-09-09
  • 1970-01-01
  • 2015-11-26
  • 2019-06-29
  • 2021-08-25
  • 1970-01-01
  • 2013-11-05
相关资源
最近更新 更多