在 Google Calendar API 中传递 `fields` 参数

问题描述 投票:0回答:5

我使用 Events.get 方法获取用户事件。然而,每当我尝试提供我想要的所选

fields
时,它都会返回一个错误,指出
Invalid field selection creator(displayName,email)
。 无论我列出哪些字段,我都会遇到类似的错误。

我做错了什么?

这是我的Python代码:-

request = calendar_service.events().list(calendarId=calendar_id,
                                         syncToken=sync_token,
                                         fields='creator(displayName,email)')
python google-api
5个回答
3
投票

以前的这些答案不再准确。 fields 参数现已详细记录在此处:https://developers.google.com/calendar/performance#partial-response。从该页面:

Fields参数语法总结

字段请求参数值的格式松散地基于 XPath 语法。下面总结了支持的语法,并在下一节中提供了其他示例。

  • 使用逗号分隔的列表选择多个字段。
  • 使用a/b选择嵌套在字段a内的字段b;使用 a/b/c 选择嵌套在 b 中的字段 c。

    Exception:对于使用“数据”包装器的 API 响应,其中响应嵌套在看起来像 data: { ... } 的数据对象中,请勿在字段规范中包含“数据”。包含具有字段规范(如 data/a/b)的数据对象会导致错误。相反,只需使用像 a/b 这样的字段规范。

  • 使用子选择器通过将表达式放在括号“( )”中来请求数组或对象的一组特定子字段。

    例如: fields=items(id,author/email) 仅返回 items 数组中每个元素的项目 ID 和作者的电子邮件。您还可以指定单个子字段,其中 fields=items(id) 相当于 fields=items/id。

  • 如果需要,在字段选择中使用通配符。例如: fields=items/pagemap/* 选择页面图中的所有对象。


2
投票

参数

fields
未记录在“可选查询参数”中。这只是为了方便示例表单。取回事件资源后,您需要进行一些后处理。

这里是

python
Calendar API 的文档。


1
投票

fields
查询参数已记录在此处

示例查询:

https://www.googleapis.com/calendar/v3/calendars/<calendarId>/events/<eventId>?fields=creator,attendees(email)


0
投票

根据文档,“fields”参数不存在。请求的响应包含作为字典对象的所有信息。

因此,如果您致电:

request = calendar_service.events().list(calendarId=calendar_id,
                                     syncToken=sync_token)

请求包含您需要的一切。您可以通过以下方式获取显示名称:

request['creator']['displayName']

0
投票

我今天遇到了这个。如果有人仍在寻找解决方案:

request = calendar_service.events().list(calendarId=calendar_id,
                                         syncToken=sync_token,
                                         fields='items(creator(displayName,email))')

顶层有一个隐式的

items
属性,因此
items(…)

© www.soinside.com 2019 - 2024. All rights reserved.