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 等只读字段发生了变化,系统不会返回相应条目。自上次列表请求之后删除和隐藏的所有条目始终会出现在结果集中,并且不允许将 showDeletedshowHidden 设置为 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

使用 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 对实际数据调用此方法,然后查看响应。