Google Distance Matrix API返回REQUEST_DENIED,已启用API仍报错求助
Google Distance Matrix API REQUEST_DENIED错误排查及解决方法
1. 优先排查代码错误(你当前代码的核心问题)
你当前的请求URL拼接存在两处语法错误,会直接导致API无法识别合法请求参数,返回权限拒绝:
- 参数名和参数值之间不能加空格:
origins =要改成origins=,destinations =要改成destinations= - 不能用HTML转义符
&拼接参数,要直接用&符号
更稳妥的写法是直接用requests库的params参数传参,避免手动拼接URL出错,修复后的参考代码如下:
# 导入依赖库 import requests, json # 填写你的API密钥 api_key = '你的实际API密钥' source = 'h4n1g1' dest = 'h4n1p8' url = 'https://maps.googleapis.com/maps/api/distancematrix/json?' # 用params参数自动拼接合法URL,不需要手动处理转义和空格 params = { 'origins': source, 'destinations': dest, 'key': api_key } r = requests.get(url, params=params) x = r.json() print(x)
2. 若修改代码后仍报错,排查API配置问题
- 确认Google Cloud控制台中已正确启用Distance Matrix API,该接口和普通的Distance API、Routes API权限独立,单独启用才可以调用
- 确认API密钥的限制规则:如果设置了IP白名单,要确保当前运行代码的设备公网IP在允许列表中;如果设置了应用类型限制,不能选择移动端/网页端限制,服务端脚本调用要选择无应用限制或者对应服务端限制规则
- 确认Google Cloud账号已绑定有效支付方式,且无欠费、风控限制,Distance Matrix API为计费接口,无有效支付方式会直接返回请求拒绝
- 确认对应API密钥未被禁用,且接口调用配额未耗尽
内容的提问来源于stack exchange,提问作者Chadi N
相关产品推荐
相关产品推荐

