澄清从java中放入谷歌日历条目

时间:2016-03-09 16:01:48

标签: google-calendar-api

我正在尝试从我的应用程序中输入谷歌日历。只是一个简单的文本标题,内容和日期条目。请在下面找到我尝试使用的代码段;

    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);

任何人都面临同样的问题?请提供您的意见,谢谢。

1 个答案:

答案 0 :(得分:1)

让我们回溯您的代码。

为了成功创建日历,这些是您的清单:

  
      
  • 将您的OAuth范围设置为https://www.googleapis.com/auth/calendar
  •   
  • 确保经过身份验证的用户具有您提供的calendarId对日历的写访问权限(例如,通过调用calendarList.get()   对于calendarId并检查accessRole)。
  •   

要检查的其他事项,例如在开发者控制台中启用API,可以在此guide中查看oauth密钥(如果您未使用服务帐户访问日历)。如果您使用的是服务帐户,请转到link