调用Google Air Quality API查询历史数据时遭遇Error 400:时间周期无效问题求助
调用Google Air Quality API查询历史数据时遭遇Error 400:时间周期无效问题求助
我之前用过Google Air Quality API的历史数据查询接口,刚好碰到过一模一样的400错误,给你几个排查方向和解决办法:
首先看你的请求示例,时间范围是从2023-10-10到2023-11-10,刚好超过了30天——这个API的单次请求时间窗口上限就是30天,哪怕多一天都会触发INVALID_ARGUMENT错误,这是很多人容易踩的坑。
具体解决思路:
- 缩短单次请求的时间范围:把时间窗口控制在30天以内,如果需要查询超过30天的历史数据,就拆分成多次请求。比如你要查31天的数据,可以分成前30天+最后1天两个请求,之后再把返回的数据合并起来。
- 修正代码中的时间计算逻辑:你代码里已经计算了
thirtyDaysAgo,但实际请求里用的是硬编码的时间,建议直接用计算后的日期生成ISO字符串,确保时间范围刚好在30天内,比如:const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000); const body = { period: { startTime: thirtyDaysAgo.toISOString(), endTime: new Date().toISOString() }, location: { latitude: 37.419734, longitude: -122.0827784 } }; - 确认数据粒度的限制:如果你请求的是小时级别的细粒度数据,这个API的时间窗口限制会更严格(比如可能只能查最近7天的小时数据)。可以先测试一个7天的小时数据请求,如果成功,再逐步扩大到最大允许的范围;如果需要更长时间的小时数据,可能只能按天聚合后查询。
另外,你的错误信息末尾有个截断的逗号,完整的错误提示可能会包含更具体的限制说明,建议你再仔细看一下完整的响应内容。官方文档里确实对这个限制提得比较隐晦,我也是踩坑后才发现的😂
备注:内容来源于stack exchange,提问作者ims16
相关产品推荐
相关产品推荐

