我正在使用https://maps.googleapis.com/maps/api/geocode/json?链接服务器密钥和用户IP以查找任何地址的纬度和经度,当我尝试查找错误时
我有一个来自谷歌的服务器访问密钥,我把我服务器的IP地址放在了他们的白名单中。
我试图通过PHP CURL访问的URL是:
https://maps.googleapis.com/maps/api/geocode/json?address=1600加州山景城圆形剧场公园路
我得到的结果是:
Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED)
有什么我需要配置的吗。地理编码API也会打开。
我也有同样的问题,我发现了这个。
在url上,它最终需要服务器密钥,而不是应用程序的api密钥。
所以基本上,您只需在URL的末尾添加服务器密钥,如下所示:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,你的经度
现在,要获取服务器密钥,只需执行以下步骤:
1) 转到开发人员控制台https://code.google.com/apis/console/
2) 在凭据中的“公共API访问”下,创建新密钥
3) 从选项中选择服务器密钥。
4)在字段中输入您的IP地址,如果您有更多的IP地址,您可以在每一行中添加。注意:仅当您要将IP地址用于测试目的时才输入该地址。否则,将IP地址部分留空。
5) 完成后,单击“创建”,将生成新的服务器密钥,然后可以将该服务器密钥添加到URL。
最后一件事是,不要把传感器=true放在网址的中间,你可以像这样在最后添加它:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,你的经度
这肯定会解决问题,只需记住使用Places API的服务器密钥即可。
编辑
我相信网络网址在过去几年里已经改变了。您现在可以从这里访问开发人员控制台-https://console.developers.google.com/apis/dashboard
希望这个答案能对你和其他观众有所帮助。祝你好运……)
除了分配给您的API密钥外,Google还通过查看参考者
或IP地址来验证传入请求的来源。要在curl中运行示例,请在googleapi控制台中创建一个新的服务器密钥。创建时,必须提供服务器的IP地址。在这种情况下,它将是您的本地IP地址。创建
服务器密钥
并将IP地址列入白名单后,您应该能够在curl中使用新的API密钥。
我的猜测是你可能创建了你的API密钥作为一个Browser Key
,它不需要你白名单你的IP地址,而是使用REFERRER
HTTP头标签进行验证。curl默认情况下不会发送这个标签,所以谷歌未能验证您的请求。