Google Maps Routes API报错‘项目无权使用该API’求助
核心问题分析
你用浏览器访问Geocode API正常,但Python googlemaps 库调用路线接口时报未授权,结合Direction API已在2025年3月淘汰的背景,核心问题大概率是未正确启用新版Routes API,或库版本/密钥权限不匹配。
可行解决步骤
必须启用Routes API:
Google Maps Directions API已淘汰,googlemaps库的directions()方法现在默认调用新版Routes API。直接去Google Cloud控制台搜索并启用Routes API,不要只依赖已启用的Geocode API。检查API密钥权限:
移除密钥限制后,还要确保密钥关联的IAM账号拥有Routes API User角色(或临时赋予Editor权限测试)。部分场景下,即使无使用限制,密钥本身缺少API调用权限也会触发错误。升级
googlemaps库版本:
旧版库可能仍在尝试调用已淘汰的Directions API,执行命令升级到最新版:pip install --upgrade googlemaps绕过库直接测试Routes API REST端点:
排除库的问题,用requests直接调用官方REST接口验证:import requests API_KEY = "<你的API密钥>" origin = "1600 Amphitheatre Parkway, Mountain View, CA" destination = "48 Wall Street, New York, NY" url = "https://routes.googleapis.com/directions/v2:computeRoutes" headers = { "Content-Type": "application/json", "X-Goog-Api-Key": API_KEY, "X-Goog-FieldMask": "routes.duration,routes.distanceMeters,routes.legs" } payload = { "origin": {"address": origin}, "destination": {"address": destination}, "travelMode": "DRIVE" } response = requests.post(url, json=payload, headers=headers) print(response.json())如果这个请求成功,说明问题出在
googlemaps库的使用逻辑;如果仍失败,回到控制台检查API启用状态和结算账号。确认项目结算状态:
若Google Cloud项目的结算账号存在欠费、未验证等异常,即使API启用也会被拒绝调用。去控制台结算页面确认状态正常。
你的原始代码问题点
代码中使用的gmaps.directions()方法依赖新版Routes API,若未启用该API,必然触发未授权错误。启用Routes API后,重新运行代码即可正常调用。
内容的提问来源于stack exchange,提问作者user2517962

