CalendarList: list

Trả về các lịch trong danh sách lịch của người dùng. Thử ngay hoặc xem ví dụ.

Yêu cầu

Yêu cầu HTTP

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

Thông số

Tên thông số Giá trị Mô tả
Thông số truy vấn không bắt buộc
maxResults integer Số mục nhập tối đa được trả về trên một trang kết quả. Theo mặc định, giá trị này là 100 mục nhập. Kích thước trang không được lớn hơn 250 mục nhập. Không bắt buộc.
minAccessRole string Vai trò truy cập tối thiểu cho người dùng trong các mục trả về. Không bắt buộc. Giá trị mặc định là không có quy tắc hạn chế.

Các giá trị được chấp nhận là:
  • "freeBusyReader": Người dùng có thể đọc thông tin về trạng thái rảnh/bận.
  • "owner": Người dùng có thể đọc và sửa đổi các sự kiện cũng như danh sách kiểm soát quyền truy cập.
  • "reader": Người dùng có thể đọc các sự kiện không phải là sự kiện riêng tư.
  • "writer": Người dùng có thể đọc và sửa đổi sự kiện.
pageToken string Mã thông báo chỉ định trang kết quả cần trả về. Không bắt buộc.
showDeleted boolean Liệu có đưa các mục đã xoá trong danh sách lịch vào kết quả hay không. Không bắt buộc. Giá trị mặc định là False.
showHidden boolean Có hiện các mục nhập bị ẩn hay không. Không bắt buộc. Giá trị mặc định là False.
syncToken string Mã thông báo lấy được từ trường nextSyncToken được trả về trên trang kết quả cuối cùng của yêu cầu danh sách trước đó. Điều này khiến kết quả của yêu cầu danh sách này chỉ chứa các mục đã thay đổi kể từ đó. Nếu chỉ các trường chỉ có thể đọc như thuộc tính lịch hoặc ACL đã thay đổi, thì mục nhập sẽ không được trả về. Tất cả các mục đã xoá và ẩn kể từ yêu cầu danh sách trước đó sẽ luôn có trong tập hợp kết quả và bạn không được đặt showDeleted hoặc showHidden thành False.
Để đảm bảo trạng thái ứng dụng nhất quán, bạn không thể chỉ định tham số truy vấn minAccessRole cùng với nextSyncToken.
Nếu syncToken hết hạn, máy chủ sẽ phản hồi bằng mã phản hồi 410 GONE và ứng dụng sẽ xoá bộ nhớ và thực hiện đồng bộ hoá đầy đủ mà không có syncToken nào.
Tìm hiểu thêm về tính năng đồng bộ hoá tăng dần.
Không bắt buộc. Chế độ mặc định là trả về tất cả mục nhập.

Ủy quyền

Yêu cầu này yêu cầu uỷ quyền với ít nhất một trong các phạm vi sau:

Phạm vi
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

Để biết thêm thông tin, hãy xem trang xác thực và uỷ quyền.

Nội dung yêu cầu

Không cung cấp nội dung yêu cầu bằng phương thức này.

Phản hồi

Nếu thành công, phương thức này sẽ trả về một phần nội dung phản hồi có cấu trúc sau:

{
  "kind": "calendar#calendarList",
  "etag": etag,
  "nextPageToken": string,
  "nextSyncToken": string,
  "items": [
    calendarList Resource
  ]
}
Tên tài sản Giá trị Mô tả Ghi chú
kind string Loại của bộ sưu tập ("calendar#calendarList").
etag etag ETag của bộ sưu tập.
nextPageToken string Mã thông báo dùng để truy cập vào trang tiếp theo của kết quả này. Bỏ qua nếu không có kết quả nào khác, trong trường hợp này, nextSyncToken sẽ được cung cấp.
items[] list Các lịch có trong danh sách lịch của người dùng.
nextSyncToken string Mã thông báo được sử dụng tại một thời điểm sau đó để chỉ truy xuất các mục đã thay đổi kể từ khi kết quả này được trả về. Bỏ qua nếu có thêm kết quả, trong trường hợp này, nextPageToken sẽ được cung cấp.

Ví dụ

Lưu ý: Các đoạn mã mẫu của phương thức này không phải là ví dụ cho mọi ngôn ngữ lập trình được hỗ trợ (xem trang thông tin về các thư viện dùng cho ứng dụng để biết danh sách các ngôn ngữ được hỗ trợ).

Java

Sử dụng thư viện ứng dụng 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

Sử dụng thư viện ứng dụng 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

Sử dụng thư viện ứng dụng 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

Sử dụng thư viện ứng dụng 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?

Hãy dùng thử!

Sử dụng Trình khám phá API bên dưới để gọi phương thức này trên dữ liệu trực tiếp và xem phản hồi.