CalendarList: list

傳回使用者日曆清單中的日曆。 立即試用查看範例

要求

HTTP 要求

GET https://www.googleapis.com/calendar/v3/users/me/calendarList

參數

參數名稱 說明
選用的查詢參數
maxResults integer 一個結果網頁上傳回的項目數量上限。預設值為 100 個項目。頁面大小不可超過 250 個項目。選用。
minAccessRole string 傳回項目中使用者的最低存取權角色。選用設定。預設設定為無限制。

可接受的值為:
  • freeBusyReader」:使用者可以讀取有空/忙碌資訊。
  • owner」:使用者可讀取及修改事件和存取控制清單 (ACL)。
  • reader」:使用者可以讀取非私人的活動。
  • writer」:使用者可讀取及修改事件。
pageToken string 用於指定要傳回結果網頁的權杖。選用。
showDeleted boolean 是否在結果中包含已刪除的日曆清單項目。選用設定。預設值為 False。
showHidden boolean 是否顯示隱藏項目。選用設定。預設值為 False。
syncToken string 從上一個清單要求結果最後一頁傳回的 nextSyncToken 欄位取得的權杖。這樣這個清單要求的結果就只會包含之後才變更的項目。如果只有日曆屬性或 ACL 等唯讀欄位已變更,系統就不會傳回相關項目。由於上一個清單要求會一律在結果集中刪除和隱藏,不允許將 showDeletedshowHidden 設為 False。
為確保用戶端狀態一致性 minAccessRole 查詢參數,不得與 nextSyncToken 同時指定。
如果 syncToken 到期,伺服器會以 410 GONE 回應代碼做為回應,用戶端應清除儲存空間,並在不使用 syncToken 的情況下執行完整的同步處理作業。
進一步瞭解漸進式同步處理。
選用。預設值為傳回所有項目。

授權

這項要求需要授權,且至少要有下列其中一個範圍:

範圍
https://www.googleapis.com/auth/calendar.readonly
https://www.googleapis.com/auth/calendar

詳情請參閱「驗證與授權」網頁。

要求主體

請勿使用這個方法提供請求主體。

回應

如果成功的話,這個方法會傳回回應內文,其結構如下:

{
  "kind": "calendar#calendarList",
  "etag": etag,
  "nextPageToken": string,
  "nextSyncToken": string,
  "items": [
    calendarList Resource
  ]
}
屬性名稱 說明 附註
kind string 集合的類型 (「calendar#calendarList」)。
etag etag 集合的 ETag。
nextPageToken string 存取此結果下一頁的權杖。如果沒有其他結果,則省略。在這種情況下,系統會提供 nextSyncToken
items[] list 使用者日曆清單中的日曆。
nextSyncToken string 用於稍後時間點使用的權杖,只會擷取這個結果傳回後已變更的項目。如果有其他結果,則省略。在這種情況下,系統會提供 nextPageToken

範例

注意:這個方法適用的程式語言眾多,我們只在此提供部分程式碼範例,完整的支援語言清單請參閱用戶端程式庫頁面

Java

使用 Java 用戶端程式庫

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.CalendarList;
import com.google.api.services.calendar.model.CalendarListEntry;

// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Iterate through entries in calendar list
String pageToken = null;
do {
  CalendarList calendarList = service.calendarList().list().setPageToken(pageToken).execute();
  List<CalendarListEntry> items = calendarList.getItems();

  for (CalendarListEntry calendarListEntry : items) {
    System.out.println(calendarListEntry.getSummary());
  }
  pageToken = calendarList.getNextPageToken();
} while (pageToken != null);

Python

使用 Python 用戶端程式庫

page_token = None
while True:
  calendar_list = service.calendarList().list(pageToken=page_token).execute()
  for calendar_list_entry in calendar_list['items']:
    print calendar_list_entry['summary']
  page_token = calendar_list.get('nextPageToken')
  if not page_token:
    break

PHP

使用 PHP 用戶端程式庫

$calendarList = $service->calendarList->listCalendarList();

while(true) {
  foreach ($calendarList->getItems() as $calendarListEntry) {
    echo $calendarListEntry->getSummary();
  }
  $pageToken = $calendarList->getNextPageToken();
  if ($pageToken) {
    $optParams = array('pageToken' => $pageToken);
    $calendarList = $service->calendarList->listCalendarList($optParams);
  } else {
    break;
  }
}

小茹

使用 Ruby 用戶端程式庫

page_token = nil
begin
  result = client.list_calendar_lists(page_token: page_token)
  result.items.each do |e|
    print e.summary + "\n"
  end
  if result.next_page_token != page_token
    page_token = result.next_page_token
  else
    page_token = nil
  end
end while !page_token.nil?

試試看!

使用下方的 APIs Explorer,針對即時資料呼叫這個方法,看看會有什麼結果。