Google Calendar API的Events.list能否对extended properties进行否定查询?
首先明确:Google Calendar的Events.list接口原生不支持对sharedExtendedProperty做否定查询,你尝试的!propertyName写法未被官方兼容,因此无法生效。
可落地实现方法
方案1:客户端二次过滤(通用首选)
- 先调用
Events.list接口拉取目标范围的事件,可配合timeMin、timeMax、maxResults等参数缩小拉取范围,降低数据量 - 本地遍历返回的事件列表,判断每个事件的
sharedExtendedProperty字段下是否存在test键,仅保留不存在该键的事件即可
该方案无额外依赖,兼容性最高,只要事件量级未超过接口拉取上限(单次最大支持
maxResults=2500,超量可分页拉取)都可以直接使用。
方案2:正向查询取补集(适合属性值可枚举场景)
如果你的业务场景下可以穷尽test属性的所有可能取值,可以先通过sharedExtendedProperty的正向查询拿到所有带test属性的事件ID集合,再拉取全量事件后剔除该集合内的事件即可,能减少部分本地判断的开销。
避坑提示
不要使用未在官方文档中公开的查询语法,这类非标准语法随时可能被官方下线,会导致业务逻辑异常。
内容的提问来源于stack exchange,提问作者zlZimon
相关产品推荐
相关产品推荐

