谷歌地图地理编码API在使用身份验证时不起作用


Google maps geocode API not working when using authentication

我已经设置了一个小型PHP脚本,该脚本通过CURL使用Google的地理编码API验证用户提交的地址信息。

https://developers.google.com/maps/documentation/geocoding/#GeocodingRequests

使用您每天获得的每个 IP 的正常配额,这一切都可以正常工作。但是,每当我尝试使用API密钥进行身份验证时,都会收到REQUEST_DENIED响应。

成功的响应

http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Agadir

请求被拒绝

http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Agadir&key={my_api_key}

我已经设置了我的项目以允许访问该服务(Google Maps API v3),我肯定远未达到每日配额。我也 100% 确定我的 API 密钥是正确的。

有谁知道 API 密钥是否需要一些时间来传播?

您需要

base64_decode() API 密钥,然后对 URL 进行签名。来自谷歌的工作代码。

地理编码请求似乎不需要密钥。我刚刚打开了这个链接:http://maps.googleapis.com/maps/api/geocode/json?sensor=false&address=Agadir 在我的浏览器中,得到了有效的 JSON。未指定密钥。您应该尝试使用任何免费的CGI代理或其他机器,并尝试先使用浏览器访问此URL。

在请求被拒绝时尝试使用 https 而不是 http,因为 Google API 需要通过 SSL 请求。