我正在尝试从java中的谷歌日历中检索日历的列表和详细信息。我正在使用服务帐户,因此使用p12文件进行OAuth。有人可以建议是否遇到同样的问题?
提前致谢!!!!
代码用于检索列表: System.out.println(“CalendarSample.showCalendars()1111 --->”+ client.calendarList()。list());
CalendarList feed = client.calendarList()。list()。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.auth.oauth2.TokenRequest.execute(TokenRequest.java:307)
at com.google.api.client.googleapis.auth.oauth2.GoogleCredential.executeRefreshToken(GoogleCredential.java:269)
at com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489)
at com.google.api.client.auth.oauth2.Credential.intercept(Credential.java:217)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:859)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
at calendarevents.CalendarSample.showCalendars(CalendarSample.java:190)
at calendarevents.CalendarSample.main(CalendarSample.java:147)
答案 0 :(得分:0)
我遇到了问题,当我在谷歌控制台开发人员中更改了邮件帐户并创建了一个新项目时,一切正常并在此之前完美运行,但是你提到的错误一直开始出现,所以我决定复出我以前的gmail帐户配置之前它运行得很好,但是这个配置也出现了这个错误,当我尝试显示与我的帐户关联的所有日历时,NPE都失败了。
所以,您可以尝试使用google api示例,在这种情况下是谷歌日历示例,如果您使用商店保存凭据-client_secrets.json-这会在您的用户文件夹中创建一个小文件 - 在我的情况下,它是C:\ Users \ myUser.store \ calendar_sample,该文件为StoredCredential,因此您可以删除此文件并重试,当您运行该示例时,它会要求您再次为您的Google帐户设置权限,一切都会再次有效