我正在尝试在谷歌日历中添加一个条目,但得到服务禁止异常。这是一个具有标题、内容和日期范围的简单条目。下面提供了代码片段;
public void temp() {
URL postURL = null;
try {
postURL = new URL("http://www.google.com/calendar/feeds/MAILID@gmail.com/PASSWORD/full");
EventEntry eventEntry = new EventEntry();
eventEntry.setTitle(new PlainTextConstruct("One"));
eventEntry.setContent(new PlainTextConstruct("Two"));
When eventTime = new When();
eventTime.setStartTime(DateTime.parseDateTime("2016-03-09T15:00:00-08:00"));
eventTime.setEndTime(DateTime.parseDateTime("2016-03-09T15:00:00-08:00"));
eventEntry.addTime(eventTime);
CalendarService calendarService = new CalendarService("Savor");
EventEntry createdEvent = calendarService.insert(postURL, eventEntry);
} catch (Exception e) {
e.printStackTrace();
}
}
执行此操作时,我收到下面提供的服务禁止异常[请忽略异常中显示的行号]
com.google.gdata.util.ServiceForbiddenException: Forbidden
<HTML>
<HEAD>
<TITLE>Forbidden</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000">
<H1>Forbidden</H1>
<H2>Error 403</H2>
</BODY>
</HTML>
at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:605)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:564)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:560)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:538)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:536)
at com.google.gdata.client.Service.insert(Service.java:1409)
at com.google.gdata.client.GoogleService.insert(GoogleService.java:613)
at GCalender.temp(GCalender.java:68)
at GCalender.main(GCalender.java:85)
此行中发生异常:EventEntry createdEvent = calendarService.insert(postURL, eventEntry);
试图解决这个问题,但在这一点上有点卡住了。如果有人已经遇到过这种情况,请提供您的意见,这将是一个很大的帮助。
谢谢!!
PS:请忽略问题是否标记了不正确的标签条目。
您正在使用已关闭的 Google 日历 API v2。 您需要切换到谷歌日历v3
事件文档:插入
event = service.events().insert(calendarId, event).execute();
更新:
您的代码具有以下内容
MAILID@gmail.com/PASSWORD/
您还需要注意,使用登录名和密码访问 Google API 不再有效。 客户端登录也已关闭。 您需要使用 Oauth2 对应用程序进行身份验证。