在Google日历API中传递`fields`参数



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

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

字段参数语法摘要

字段请求参数值的格式松散地基于XPath语法。支持的语法概述如下,下一节还提供了其他示例。

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

    异常:对于使用"数据"包装器的API响应,其中响应嵌套在看起来像数据的数据对象中:{…},请不要在字段规范中包含"数据"。包含具有字段规范(如data/a/b)的数据对象会导致错误。相反,只需使用类似a/b的字段规范。

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

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

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

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

以下是日历API的python文档。

这里记录了fields查询参数。

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

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

所以如果你打电话给:

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

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

request['creator']['displayName']

相关内容

  • 没有找到相关文章