CalendarList: list

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

要求

HTTP 要求

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

參數

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

可接受的值為:
  • freeBusyReader」:使用者可以讀取有空/忙碌資訊。
  • owner」:使用者可以讀取及修改事件和存取權控管清單。
  • reader」:使用者可以讀取非私人的活動。
  • writer」:使用者可以讀取及修改事件。
pageToken string 指定要傳回哪個結果網頁的權杖。選填。
showDeleted boolean 是否要在結果中包含已刪除的日曆清單項目。選用設定。預設值為「False」。
showHidden boolean 是否要顯示隱藏的項目。選用設定。預設值為「False」。
syncToken string 透過 nextSyncToken 欄位取得的權杖。這個欄位會傳回前一份清單要求結果的最後一個頁面。因此,這項清單要求的結果只會包含從那時變更的項目。如果只有唯讀欄位 (例如日曆屬性或 ACL) 有變更,系統不會傳回這些項目。根據先前的清單要求,所有項目已刪除並隱藏,系統永遠無法將 showDeleted 設為 False,showHidden 不可設為 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

使用 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,針對即時資料呼叫這個方法,然後查看回應。