要求
HTTP 要求
GET https://www.googleapis.com/calendar/v3/users/me/calendarList
參數
參數名稱 | 值 | 說明 |
---|---|---|
選用查詢參數 | ||
maxResults |
integer |
一個結果頁面中傳回的項目數量上限。預設值為 100 個項目。頁面大小不得超過 250 個項目。選用。 |
minAccessRole |
string |
在傳回的項目中,使用者的最低存取權角色。選用設定。預設為無限制。
可接受的值如下:
|
pageToken |
string |
符記,可指定要傳回的結果頁面。選用。 |
showDeleted |
boolean |
是否要在結果中納入已刪除的日曆清單項目。選用設定。預設值為 False。 |
showHidden |
boolean |
是否顯示隱藏的項目。選用設定。預設值為 False。 |
syncToken |
string |
從先前列出要求的最後一個結果頁面傳回的 nextSyncToken 欄位取得的符記。這會讓這項清單要求的結果只包含自該日期起變更的項目。如果只有日曆屬性或 ACL 等唯讀欄位有變更,系統就不會傳回項目。自上次清單要求以來刪除和隱藏的所有項目,一律會保留在結果集,且不得將 showDeleted 和 showHidden 設為 False。為確保用戶端狀態一致, minAccessRole 查詢參數不得與 nextSyncToken 一併指定。如果 syncToken 到期,伺服器會傳回 410 GONE 回應碼,而用戶端應清除儲存空間,並在沒有任何 syncToken 的情況下執行完整同步作業。進一步瞭解增量同步處理。 選用。預設會傳回所有項目。 |
授權
這項要求需要至少具備下列其中一個範圍的授權:
範圍 |
---|
https://www.googleapis.com/auth/calendar.readonly |
https://www.googleapis.com/auth/calendar |
https://www.googleapis.com/auth/calendar.calendarlist |
https://www.googleapis.com/auth/calendar.calendarlist.readonly |
詳情請參閱「驗證與授權」頁面。
要求主體
請勿透過此方法提供要求主體。
回應
如果成功的話,這個方法會傳回回應內文,其結構如下:
{ "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?
試試看!
您可以使用下方的 API Explorer,針對即時資料呼叫這個方法,然後查看回應。