Clio API v4:日历条目from/to过滤器无法正常工作如何解决?
看起来你遇到的问题大概率是参数名称使用错误导致的——Clio的v4 API对于日历条目的时间范围过滤,并不是用from和to这两个参数,而是需要基于start_at和end_at字段使用范围查询语法。
我给你整理几个关键的排查和解决步骤:
使用正确的过滤参数
Clio API的calendar_entries端点,要过滤开始时间晚于某个值的条目,应该用start_at[gte](gte代表greater than or equal);如果要过滤结束时间早于某个值的条目,用end_at[lte](lte代表less than or equal)。你的请求应该改成类似这样:https://app.clio.com/api/v4/calendar_entries?calendar_id=12345&start_at[gte]=2018-04-15T02%3A09%3A39Z&fields=id%2C+etag%2C+calendar_owner%2C+start_at%2C+end_at%2C+all_day这个参数是Clio API文档明确规定的范围过滤方式,替换掉原来的
from参数后,应该就能正确筛选出2018年4月15日之后的条目了。简化请求排除干扰
先去掉fields参数,发送一个最基础的请求测试过滤逻辑是否生效:https://app.clio.com/api/v4/calendar_entries?calendar_id=12345&start_at[gte]=2018-04-15T02%3A09%3A39Z如果这个请求能正确返回符合时间范围的条目,再逐步加回
fields参数,确认是不是字段选择导致的意外问题(虽然这种概率很低,但可以快速排除)。验证权限与日历ID
虽然你说请求返回了该日历的所有条目,但还是可以确认一下:你的访问令牌是否拥有该日历的只读权限?目标calendar_id是否完全正确?避免因为权限异常导致API返回了超出预期的数据集。
如果按照上面的步骤调整后还是有问题,建议你查看Clio官方API文档中calendar_entries端点的过滤规则部分,确认是否有其他特殊的时间格式要求(不过你使用的ISO 8601格式是符合要求的,URL编码也没问题)。
内容的提问来源于stack exchange,提问作者Pavel Dubinin

