在Oauth2身份验证后列出Google日历事件

时间:2012-07-06 03:24:46

标签: java jsp oauth-2.0 google-calendar-api google-data-api

我遇到了一个问题,我需要撤回某些默认Google日历中列出的当前事件,可能需要一周时间。我列出了下面我能找到的最好的代码示例,但它没有指向其中的Oauth2调用的任何内容。另外,我收到服务错误。但我找不到任何可能引用它的东西,包括accessProtectedResource对象。

有人可以解释一下该服务应该是什么,或者是一个示例的链接,它会在Oauth2调用后给我一个日历事件?

CalendarList calendarList = service.calendarList().list().execute();

    while (true) {
      for (CalendarListEntry calendarListEntry : calendarList.getItems()) {
        System.out.println(calendarListEntry.getSummary());
      }
      String pageToken = calendarList.getNextPageToken();
      if (pageToken != null && !pageToken.isEmpty()) {
        calendarList =     service.calendarList().list().setPageToken(pageToken).execute();
      } else {
        break;
      }
    }

2 个答案:

答案 0 :(得分:1)

由于谷歌文档存在,我花了一些时间才得到这个,但它有错误。

Calendar service3 = new Calendar(transport, jsonFactory, accessProtectedResource);

com.google.api.services.calendar.model.Calendar calendar = service3.calendars().get("primary").execute();
com.google.api.services.calendar.model.Events events = service3.events().list("primary").execute(); 

答案 1 :(得分:0)

您可以参考

https://developers.google.com/google-apps/calendar/v1/developers_guide_java

Displaying Google Calendar in Java JFrame

https://developers.google.com/google-apps/calendar/v2/developers_guide_java

像这样的代码

// Create a CalenderService and authenticate
CalendarService myService = new CalendarService("exampleCo-exampleApp-1");
myService.setUserCredentials("jo@gmail.com", "mypassword");

// Send the request and print the response
URL feedUrl = new URL("https://www.google.com/calendar/feeds/default/allcalendars/full");
CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);
System.out.println("Your calendars:");
System.out.println();
for (int i = 0; i<resultFeed.getEntries().size(); i++) {
  CalendarEntry entry = resultFeed.getEntries().get(i);
  System.out.println("\t" + entry.getTitle().getPlainText());
}