此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的末尾添加服务器密钥就可以了:
现在,要获得服务器密钥,请按照下列步骤操作:
1)转到开发者控制台https://code.google.com/apis/console/
2)在凭证中,在公共API访问下,创build新密钥
3)从选项中select服务器密钥。
4)在字段中input你的IP地址,如果你有更多的IP地址,你可以添加每一行。 注意:只有当您想将其用于testing目的时才inputIP地址。 否则,请将IP地址部分留空。
5)完成后,点击创build,你的新的服务器密钥将被生成,然后你可以将该服务器密钥添加到你的URL。
最后一件事是,不要把传感器=真正的URL中间,你可以像这样结束添加它:
这一定会解决这个问题,只记得使用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密钥。