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

时间:2015-12-16 08:01:44

标签: python google-api

我使用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)')

4 个答案:

答案 0 :(得分:1)

"Optional query parameters"中未记录参数fields。这只是示例表单的便利。在获取事件资源后,您需要进行一些后处理。

以下是Calendar APIpython文档。

答案 1 :(得分:1)

fields查询参数记录在here中。

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

答案 2 :(得分:1)

这些先前的答案不再准确。现在在这里深入记录了fields参数:https://developers.google.com/calendar/performance#partial-response。在该页面上:

字段参数语法摘要

字段请求参数值的格式大致基于XPath语法。下面总结了受支持的语法,以下部分提供了其他示例。

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

    异常:对于使用“数据”包装器的API响应,该响应嵌套在看起来像数据的数据对象中:{...},请不要在“字段规范。将数据对象包含在字段规范(例如data / a / b)中会导致错误。相反,只需使用a / b之类的字段规范即可。

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

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

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

答案 3 :(得分:0)

根据文档&#39;字段&#39;参数不存在。请求的响应包含所有信息作为字典对象。

所以如果你打电话:

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

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

request['creator']['displayName']