Google Maps Geocoding API - 使用 API 密钥拒绝请求
Posted
技术标签:
【中文标题】Google Maps Geocoding API - 使用 API 密钥拒绝请求【英文标题】:Google Maps Geocoding API - Request Denied using API Key 【发布时间】:2013-04-17 03:41:02 【问题描述】:我正在尝试按如下方式使用 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
。
谁能帮忙?
【问题讨论】:
失去key
。没有它也可以工作:maps.googleapis.com/maps/api/geocode/…
是的,我知道...但是请求限制为每天 1000 个,我需要的不止这些。密钥的目的是每天授予 25000 个请求,然后支付请求......需要让密钥正常工作。
原来,此 API 仅适用于 Maps API for Business 客户。您在 Google Maps javascript v3 中查看过我们的 Geocoding library 吗?
重新检查 Geolocation API 是否也已启用。同样的反应。
【参考方案1】:
REQUEST_DENIED 状态为returned by the Places API when:
您尚未在 API 控制台的服务选项卡中激活 Places API 服务。 您的请求中缺少关键参数。 key 参数与您在 API 控制台的 API Access 选项卡中的 API 密钥不匹配。 您的 API 密钥未在 API 控制台的 API 访问选项卡中正确设置: 如果您使用的是浏览器密钥,请检查您允许的引用者是否正确。 如果您使用的是服务器密钥,请检查您允许的 IP 是否正确。 不支持 android 和 ios 密钥,请使用浏览器或服务器密钥。 请求未作为 HTTPS 请求发送,所有 Web 服务请求都需要 HTTPS。 发送请求时使用了不正确的 HTTP 方法: 所有请求都必须作为 GET 请求发送,地点操作除外。 所有地点操作都必须作为 POST 请求发送。我未能将生产服务器的 IP 地址列入白名单。
【讨论】:
如果不支持 Android 和 iOS 密钥,为什么要让我们首先创建它们!?!?!?!? @MarcoLuglio 因为其他一些 Google API 确实允许使用这些类型的密钥(例如 Google Cloud Vision API)。但我同意这令人困惑。【参考方案2】:似乎有意使该密钥不适用于地理编码的简单 HTTP 查询。谷歌正在阻止任何可能的数据再利用。见"Usage Limits":
“Geocoding API 只能与 Google 地图一起使用; 禁止在未在地图上显示的情况下对结果进行地理编码。"
您可以按照here 的说明使用 Javascript API 将结果加载到地图上。
【讨论】:
【参考方案3】:只更改这样的googleapis源
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places"></script>
【讨论】:
以上是关于Google Maps Geocoding API - 使用 API 密钥拒绝请求的主要内容,如果未能解决你的问题,请参考以下文章
Google Maps Geocoding API - 使用 API 密钥拒绝请求
Google Maps Geocoding API 使用限制
Google Maps Geocoding API(如何获取纬度/经度)
使用 Google Maps JavaScript API v3 和 Geocoding API 映射多个位置