谷歌Places API查询商家Place ID返回NOT_FOUND错误如何解决?
谷歌商家Place ID检索失败及NOT_FOUND报错解决办法
你收到的返回报错如下:
{ "error_message": "The provided Place ID is no longer valid. Please refresh cached Place IDs as per https://developers.google.com/maps/documentation/places/web-service/place-id#save-id", "html_attributions": [], "status": "NOT_FOUND" }
该报错核心原因有两类:一是搜索参数有误匹配不到对应商家,二是请求携带的Place ID已过期失效,可按照以下步骤排查解决:
排查搜索无结果问题
- 确认搜索关键字完全匹配商家在谷歌地图登记的官方名称、完整地址,不要使用简称、本地化别名,可先在谷歌地图网页端直接搜索,确认能正常检索到该商家后再使用对应名称发起API请求
- 校验API请求的区域参数(region)、语言参数(language)是否与商家所在地区匹配,对应参数会过滤跨区域检索结果,不匹配时无法返回目标商家信息
无需调用API直接获取有效Place ID
你可以跳过API检索步骤,直接从谷歌地图商家详情页提取ID:
- 打开谷歌地图网页端,进入目标商家的详情页面
- 直接查看浏览器地址栏URL,
place/字段后、下一级/前的字符串就是该商家的有效Place ID - 也可以打开浏览器开发者工具的「网络」面板,刷新页面后筛选
details?开头的请求,请求参数中的place_id字段即为有效ID
处理Place ID失效问题
- 报错提示的核心是你请求中携带的Place ID已经失效,谷歌会在商家更名、搬迁、注销后回收旧的Place ID,旧ID无法继续使用
- 不要长期缓存Place ID,建议每30天重新获取一次最新ID,避免出现失效问题
内容的提问来源于stack exchange,提问作者KeoooDev
相关产品推荐
相关产品推荐

