簡體   English   中英

帶有Java的Google Calendar API-僅獲取默認日歷的事件,忽略假期

[英]Google Calendar API w/ Java - Get events only for the default calendar, ignoring the holidays

我想做的是僅獲取默認日歷中所有事件的列表? 我不希望包含其他日歷活動,例如假期。

我正在使用“ ... / feeds /用戶名/ default / full”並查詢從1個月前到永遠的所有事件。 我創建了兩個事件,但獲得了包含25個條目的供稿。 我的兩個事件是第一個,然后是23個假期。 我真的根本不將它們包括在內,但是如果它們必須存在,我如何檢測到它們。 我唯一能找到的是我的兩個活動的eTag與假期的eTag不同。 但是我不能只說從遇到的第一個Etag中獲取所有事件,因為默認日歷可能沒有任何事件,因此第一個將是假期。

任何幫助,將不勝感激。

使用最新版本的Google Calendar API,只需幾行代碼即可完成此操作。 您需要做的就是提取主日歷的事件,如此處所述:

http://code.google.com/apis/calendar/v3/using.html#retrieving_events

您需要的代碼是:

Events events = service.events().list("primary").execute();

while (true) {
  for (Event event : events.getItems()) {
    System.out.println(event.getSummary());
  }
  String pageToken = events.getNextPageToken();
  if (pageToken != null && !pageToken.isEmpty()) {
    events = service.events().list("primary").setPageToken(pageToken).execute();
  } else {
    break;
  }
}

我想知道您正在使用哪個版本的Calendar API? 在v3中,我無需休假就能參加所有活動。 我添加了更多代碼示例,因為Google文檔通過Java Oauth2連接到Calendar V3 API不正確。

使用其他文章中列出的代碼來循環遍歷設置Oauth和初始化日歷后的Calendar事件。 您可能可以,但不需要聲明事件API。 我只是從Calendar service(3)調用它。 請注意,我列出的日歷ID是“主要”。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM