【问题标题】:Android Google Locations API keyAndroid Google Locations API 密钥
【发布时间】:2015-09-20 22:12:41
【问题描述】:
{
"error_message" : "This IP, site or mobile application is not authorized to     use this API key. Request received from IP address xxx.xxx.xxx.xxx, with empty referer",
"html_attributions" : [],
"results" : [],
"status" : "REQUEST_DENIED"
}

我整天都在尝试发出一个返回 JSON 对象的请求,如下所示: https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=cruise&key=API_KEY

我已尝试按照https://developers.google.com/places/android-api/signup 的指南进行操作。我已经阅读了很多帖子,比如How do I get a Google Places API key for my Android App,并制作了服务器密钥和 Android 密钥。我仍然收到此错误消息。

我已在开发者控制台中启用 Places API。

我想在 Android 应用中进行此查询,所以我需要 Android 密钥,对吗?有些帖子一直在说要获取服务器密钥。我感到很困惑。

我今天做了很多钥匙。我不知道有这个问题的人的所有其他帖子是否已经过时,或者我只是在做一些完全错误的事情。我在命令行上使用 keytool 获得了 SHA1 指纹。我仍然不断收到请求被拒绝。

【问题讨论】:

    标签: android google-places-api


    【解决方案1】:

    经过一番折腾,在为我的 Android 应用创建了浏览器键之后,它终于可以工作了。为什么需要浏览器密钥对我来说真的没有意义,但你有它......

    【讨论】:

      【解决方案2】:

      我不确定在 Android 应用程序中使用浏览器密钥是否有效,但这并没有什么意义。

      来自Google API docs

      控制台使您能够创建服务器、浏览器、Android 和 iOS API 密钥。一旦你创建了一个密钥,你就可以限制它的使用位置。可用的限制取决于密钥的类型。

      可以根据服务器的源 IP 地址限制服务器密钥。 可以根据 HTTP 引用者限制浏览器键。 Android 密钥可以根据包名称和证书 SHA-1 指纹进行限制。 iOS 密钥可以根据包标识符进行限制。 看起来您必须指定一个网站作为基于浏览器的密钥的引用者。由于您不知道您的 Android 应用程序中的引荐来源网址是什么,因此这样做没有任何意义。使用 Android 密钥,您可以通过包名称来限制 API 的使用。

      还有:

      因此,您的项目可以将服务器端组件与浏览器和/或移动组件结合使用,而不必担心在浏览器密钥或移动密钥被泄露时会损害您的服务器。

      如果您使用两个不同的密钥,它可以让您确定一个是否被泄露,而另一个则没有。这为您提供了更好的安全性。

      【讨论】:

        猜你喜欢
        • 2013-08-27
        • 2015-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-15
        • 2014-02-08
        • 2015-12-31
        • 1970-01-01
        相关资源
        最近更新 更多