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

Các tham số

Tên thông số Giá trị Nội dung 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ị này 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ó thể 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 cũng như 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 các 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 Có đưa các mục 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 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 thu đượ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 làm cho kết quả của yêu cầu danh sách này chỉ chứa các mục nhập đã thay đổi kể từ đó. Nếu chỉ có các trường chỉ đọc, chẳng hạn 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 nhập đã bị xoá và ẩn bởi vì yêu cầu danh sách trước đó sẽ luôn nằm trong tập hợp kết quả và không được phép đặt showDeletedshowHidden 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ẽ giải phóng bộ nhớ rồi đồ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. Tuỳ 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 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ề một 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ị Nội dung 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. Được bỏ qua nếu không có thêm kết quả nào, trong trường hợp này, nextSyncToken sẽ được cung cấp.
items[] list Lịch xuất hiện 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 nhập đã 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

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

1.199

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 hồng ngọc.

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 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.