CalendarList: list

Trả về lịch trên 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

Tham số

Tên thông số Giá trị Mô tả
Tham 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ị là 100 mục nhập. Kích thước trang không bao giờ đượ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 của người dùng trong các mục nhập được trả về. Không bắt buộc. Mặc định là không 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 rảnh/bận.
  • "owner": Người dùng có thể đọc và sửa đổi các sự kiện cũng như quyền truy cập vào danh sách kiểm soát.
  • "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ả nào cần trả về. Không bắt buộc.
showDeleted boolean Liệu có bao gồm các mục trong danh sách lịch đã xoá vào kết quả hay không. Không bắt buộc. Giá trị mặc định là False.
showHidden boolean Liệu có hiển thị các mục 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 nhận được từ trường nextSyncToken được trả về trên trang cuối của kết quả của yêu cầu danh sách trước đó. Hàm này làm cho 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ừ thời điểm đó. Nếu chỉ có các trường chỉ đọc như thuộc tính lịch hoặc ACL đã thay đổi, mục nhập sẽ không được trả về. Tất cả các mục đã bị xoá và bị ẩn do yêu cầu danh sách trước đó sẽ luôn nằm trong nhóm kết quả và không được phép đặt showDeleted cả showHidden thành False.
Để đảm bảo tính nhất quán của trạng thái ứng dụng, 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á toàn bộ mà không có syncToken nào.
Tìm hiểu thêm về quá trình đồng bộ hoá gia tăng.
Không bắt buộc. Lựa chọn mặc định là trả về tất cả các mục nhập.

Ủy quyền

Yêu cầu này cần có sự 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

Để 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

Đừ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ề nội dung phản hồi có cấu trúc như 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 bộ sưu tập ("calendar#calendarList").
etag etag ETag của bộ sưu tập.
nextPageToken string Mã thông báo được dùng để truy cập vào trang tiếp theo của kết quả này. Bị 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 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 sau đó để chỉ truy xuất các mục đã thay đổi kể từ khi kết quả này được trả về. Được bỏ qua nếu có thêm kết quả. Trong trường hợp đó, 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

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

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

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

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ử!

Hãy sử dụng APIs Explorer (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.