提问者:小点点

此IP、站点或移动应用程序无权使用此API密钥


我正在使用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也会打开。


共3个答案

匿名用户

我也有同样的问题,我发现了这个。

在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

  • 导航到开发者控制台-https://console.developers.google.com/或者使用“详细信息”中的链接直接导航到API仪表板

希望这个答案能对你和其他观众有所帮助。祝你好运……)

匿名用户

  1. 选择键
  2. API限制选项卡
  3. 选择API密钥
  4. 保存
  5. 选择应用程序限制-

匿名用户

除了分配给您的API密钥外,Google还通过查看参考者或IP地址来验证传入请求的来源。要在curl中运行示例,请在googleapi控制台中创建一个新的服务器密钥。创建时,必须提供服务器的IP地址。在这种情况下,它将是您的本地IP地址。创建服务器密钥并将IP地址列入白名单后,您应该能够在curl中使用新的API密钥。

我的猜测是你可能创建了你的API密钥作为一个Browser Key,它不需要你白名单你的IP地址,而是使用REFERRERHTTP头标签进行验证。curl默认情况下不会发送这个标签,所以谷歌未能验证您的请求。