使用Google Maps Flutter Directions遇REQUEST_DENIED错误,求解决方案
解决Google Directions API请求被拒绝的问题
1. 检查API密钥的应用限制配置
登录Google Cloud控制台,找到对应API密钥:
- 确认Directions API已在项目中启用(进入API库搜索并启用)
- 查看密钥的「应用限制」:
- 若为Android应用,必须配置正确的SHA-1指纹和应用包名,不能留空或填写错误
- 测试阶段可临时设置为「无限制」(上线前务必改回对应应用限制,避免密钥泄露风险)
- 检查「API限制」,确保勾选了Directions API和Maps SDK for Android,不要遗漏所需API
2. 移除不必要的HTTP Referer限制
如果密钥设置了「HTTP Referer」限制,Android端请求会因无法携带有效Referer被拒绝:
- 直接删除HTTP Referer限制,改用Android应用限制(更适合移动端场景)
- 若必须保留HTTP限制,需确保请求中携带符合规则的Referer(Android端一般不推荐这种方式)
3. 验证项目权限与配额
- 确认Google Cloud项目已开启计费功能(免费额度内也可正常使用,但未开启计费可能导致部分API受限)
- 进入Directions API的配额页面,检查是否超出请求限额(超出会触发拒绝)
4. 核对请求参数正确性
不管用flutter_polyline_points还是Dio调用,都要确认参数:
- 起点
origin、终点destination格式正确(支持纬度,经度或地址字符串) - API密钥
key参数拼写正确,没有遗漏或输入错误 - 请求URL格式无误,示例:
https://maps.googleapis.com/maps/api/directions/json?origin=37.7749,-122.4194&destination=34.0522,-118.2437&key=YOUR_API_KEY
内容的提问来源于stack exchange,提问作者Md. Samiul Islam
相关产品推荐
相关产品推荐

