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 是否正确。 不支持 androidios 密钥,请使用浏览器或服务器密钥。 请求未作为 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 映射多个位置

Google Maps (Reverse) Geocoding API 应该只显示 Cityname

Google Maps Geocoding APi 不返回 lat 和 long