此IP,网站或移动应用程序未被授权使用此API密钥

我正在使用https://maps.googleapis.com/maps/api/geocode/json ? 链接与服务器的密钥和用户IPfind经纬度的任何地址,当我尝试我发现错误为

我有一个从谷歌的服务器访问密钥,我把我的服务器的IP地址在他们的白名单。

我试图通过PHP CURL访问的URL是:

https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=XXXXXXXXXXXX

我得到的结果是:

Array ([error_message] => This IP, site or mobile application is not authorized to use this API key. [results] => Array ( ) [status] => REQUEST_DENIED) 

有什么我需要configuration。 地理编码API也被打开。

我有同样的问题,我发现这一点。

在url上,它最终需要服务器密钥,而不是应用程序的api密钥。

所以基本上,你只需在URL的末尾添加服务器密钥就可以了:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&sensor=true&key=SERVERKEY

现在,要获得服务器密钥,请按照下列步骤操作:

1)转到开发者控制台https://code.google.com/apis/console/

2)在凭证中,在公共API访问下,创build新密钥

3)从选项中select服务器密钥。

4)在字段中input你的IP地址,如果你有更多的IP地址,你可以添加每一行。 注意:只有当您想将其用于testing目的时才inputIP地址。 否则,请将IP地址部分留空。

5)完成后,点击创build,你的新的服务器密钥将被生成,然后你可以将该服务器密钥添加到你的URL。

最后一件事是,不要把传感器=真正的URL中间,你可以像这样结束添加它:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=yourlatitude,yourlongitude&radius=5000&key=SERVERKEY&sensor=true

这一定会解决这个问题,只记得使用Places API的服务器密钥。

希望这个答案会帮助你和其他观众。 祝你好运 .. :)

除了分配给您的API密钥外,Google还会通过查看REFERRER或IP地址来validation传入请求的来源。 要在curl中运行示例,请在Google API控制台中创build一个新的Server Key 。 在创build它时,您必须提供服务器的IP地址。 在这种情况下,这将是您的本地IP地址 。 创buildServer Key并将您的IP地址列入白名单后,您应该可以使用curl中的新API密钥。

我的猜测是你可能创build了你的API密钥作为Browser Key ,它不要求你将你的IP地址列入白名单,而是使用REFERRER HTTP头标签进行validation。 curl默认不会发送这个标签,所以Google无法validation您的请求。

Google Places API目前不支持从Google API控制台生成的Android或iOS密钥。 目前仅支持服务器和浏览器密钥。

你创build一个关键的出口引用不input引用地址

对于给定的项目也应该启用相应的API

https://console.developers.google.com/apis/library?project=projectnamehere

Google Place API要求在进行API调用时包含引用HTTP头。

包含HTTP头“Referer:yourdomain.com”,这应该解决响应问题。

我遇到了问题,因为我没有在Google控制台中启用APL密钥。