在Android中使用Google API密钥,但有限制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Android中使用Google API密钥,但有限制相关的知识,希望对你有一定的参考价值。
创建Google Maps API密钥时,我们可以应用四个限制:-
- IP地址(Web服务器,cron作业等)。
- HTTP Referer(javascript)
- Andoid(对于SDK)
- ios(对于SDK)
现在,如果我们使用各自位置的键,一切都会正常。
问题出现,当我们想使用REST从移动设备(android / ios)访问某些API时,例如获取附近的位置以供用户输入。现在,哪种限制在这种情况下会起作用,以及如何处理呢?
我已经尝试了所有限制,但无法使用。
提前感谢。
在这种情况下,Android / Ios限制将起作用,然后将SHA放在所需的位置,然后在Android上以防万一,则将您的程序包名称放在此处。它将起作用,还可以从控制台启用您正在使用的api。
如果我的理解正确,您想通过移动应用程序使用Places API Web服务。通常,应该从后端服务器调用Google Maps API Web服务,并且它们仅支持IP地址限制。
我建议您看一下以下有关可以为不同API设置的限制的文章
https://developers.google.com/maps/faq#keysystem
如您所见,Places API Web服务只能使用IP地址限制。直接从移动设备发送Places API请求没有多大意义,因为每个设备都有自己的IP地址,并且您不知道用户设备的IP地址。因此,为了保护API密钥,唯一可行的解决方法是创建中间后端服务器。
应用程序应将请求发送到您的中间服务器,中间后端服务器应将Google地方信息API请求发送到Google,且受保护的API密钥限制为您服务器的IP地址,并将代理结果返回给您的应用程序。
在这种情况下,您需要两个API密钥。一个用于具有Android应用限制的Google Maps Android SDK,另一个用于具有IP地址限制的Places API Web服务。
我希望这会有所帮助!
以上是关于在Android中使用Google API密钥,但有限制的主要内容,如果未能解决你的问题,请参考以下文章
在 Android Studio 中使用 Gradle 管理 Google Maps API 密钥
限制对 Google API 的 Android 密钥的使用
如何为我的 Android 应用获取 Google Places API 密钥