谷歌地图地理编码API - 使用API密钥请求被拒绝

11

我正在尝试使用Google API地理编码服务,如下所示:

https://maps.googleapis.com/maps/api/geocode/json?&address=melbourne&key=xxx&sensor=false

我得到的回复始终是:

{
   "results" : [],
   "status" : "REQUEST_DENIED"
}

我已经启用了Google Maps API v3和Places API服务。我甚至设置了计费。我尝试删除和重新创建多个密钥-但都有相同的效果。我也尝试了不同网络的服务,但结果都一样。

在Google API仪表板的报告部分中,我可以看到请求数量正在累积,但响应始终是Request_Denied

有人能帮忙吗?


1
是的,我知道...但请求每天限制在1000个,而我需要更多。这个密钥应该授予每天25000个请求,然后是付费请求.....需要让密钥正常工作。 - Heath Kelly
原来,这个API只对Maps API for Business的客户开放。您是否看过我们在Google Maps Javascript v3中的地理编码库 - Brett
重新检查了地理位置API是否已启用。仍然是同样的响应。 - Shervin
3个回答

24
“REQUEST_DENIED”状态是Places API返回的状态,当出现以下情况时会返回该状态:
  • 您没有在API控制台的服务选项卡中激活Places API服务。
  • 请求中缺少key参数。
  • 请求中的key参数与API控制台的API访问选项卡中的API密钥不匹配。
  • API控制台的API访问选项卡中未正确设置API密钥:
  • 如果您使用的是浏览器密钥,请检查允许的引荐者是否正确。
  • 如果您使用的是服务器密钥,请检查允许的IP地址是否正确。
  • 不支持Android和iOS密钥,请使用浏览器或服务器密钥。
  • 请求未作为HTTPS请求发送,所有Web服务请求都需要HTTPS。
  • 使用了不正确的HTTP方法发送请求:
  • 除了Place Actions之外,所有请求都必须作为GET请求发送。
  • 所有Place Actions必须作为POST请求发送。

我没有将生产服务器的IP地址加入白名单。


如果Android和iOS密钥不受支持,为什么要让我们首先创建它们?!?!? - Marco Luglio
@MarcoLuglio 因为其他一些谷歌API允许使用这种类型的密钥(例如Google Cloud Vision API)。但我同意这很令人困惑。 - thijsonline

0

只需像这样更改googleapis源

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places"></script>

0

谷歌似乎有意让Geocoding的关键字无法与简单的HTTP查询一起使用。谷歌正在防止数据被重新利用。请参见"使用限制"

"Geocoding API只能与Google地图一起使用;禁止在没有显示地图的情况下使用地理编码结果。"

您可以使用Javascript API将结果加载到地图上,如此处所述。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接