我正在尝试从我的应用程序中输入谷歌日历。只是一个简单的文本标题,内容和日期条目。请在下面找到我尝试使用的代码段;
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:65)
at GCalender.main(GCalender.java:88)
The exception is being thrown at this line: EventEntry createdEvent = CalendarService.insert(postURL, eventEntry);
任何人都面临同样的问题?请提供您的意见,谢谢。
答案 0 :(得分:1)
让我们回溯您的代码。
为了成功创建日历,这些是您的清单:
- 将您的OAuth范围设置为https://www.googleapis.com/auth/calendar。
- 确保经过身份验证的用户具有您提供的calendarId对日历的写访问权限(例如,通过调用calendarList.get() 对于calendarId并检查accessRole)。
要检查的其他事项,例如在开发者控制台中启用API,可以在此guide中查看oauth密钥(如果您未使用服务帐户访问日历)。如果您使用的是服务帐户,请转到link。