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

如需了解详情,请参阅身份验证和授权页面。

请求正文

使用此方法时请勿提供请求正文。

响应

如果成功,此方法将返回采用以下结构的响应正文:

{
  "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 对实时数据调用此方法并查看响应。