Android - 谷歌地图API密钥不起作用

时间:2017-01-10 16:01:19

标签: android google-maps google-maps-android-api-2

我有一个Google Map API密钥(适用于Android应用),我将密钥限制为Android应用。我想用这个链接:

https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key=MY_API_KEY

但我得到的错误是这样的:

{
   "error_message" : "This IP, site or mobile application is not authorized to use this API key. Request received from IP address 176.233.211.37, with empty referer",
   "results" : [],
   "status" : "REQUEST_DENIED"
}

我正在研究这个错误几个小时,但我无法解决它。提前谢谢。

1 个答案:

答案 0 :(得分:3)

Android应用程序限制的密钥仅用于授权使用Android的原生Google API,例如Google Play Services中的{API},Maps Android APIPlaces API for Android,而{{} 3}}您刚刚通过HTTP(S)访问的Web服务不被视为其中之一。

只需按照Elevation API工作流程创建一个与Elevation API一起使用的密钥,但正如页面和Get a Key中所述,为了安全地使用API​​密钥,您应该注意保护您的反对滥用的API密钥。

正如Get a Key文章和Google Maps API best practices中所述,Web服务允许在API密钥上设置IP地址限制。但是,如果您打算直接从Android应用程序调用Elevation API,则无法知道所使用的IP地址,因此您必须保持密钥不受限制。

更安全的方法是通过您自己的代理服务器进行呼叫,这允许您设置密钥的IP地址限制,并完全消除在您的移动应用中包含API密钥的需要,因为您只需要在服务器上配置它。