这是another question on StackOverflow的后续。
有什么方法可以限制Android应用程序访问Google Web Services API(在我的示例中为Places API Web Service)吗?我想从位置详细信息中获取“address_components”字段,但无法使用Android API函数,因为returned object中没有该字段。
我已经选择了Android应用密钥限制,并在Google Developer Console中输入了我的应用详细信息(包名称+ SHA-1证书指纹)。我收到了“您的API密钥上配置了每个IP或每个引用者的限制...”错误消息,这是预期的。
我已经尝试填写“X-Android-Package”和“X-Android-Cert”标题,但没有改变。有什么办法吗?
2条答案
按热度按时间whitzsjs1#
Android应用程序限制仅在您将密钥与Android API一起使用时才有效,唉(文档可以更清楚地说明这一点)。
如果您计划从移动的应用调用Web服务,那么首选方法是通过服务代理移动调用,这样API密钥就不会嵌入到移动应用中。在this blog post中有更多关于这种方法的信息,它链接到this video。
yvt65v4c2#
我正在分享云支持团队对这个问题的回应。希望它能起作用。
要解决此问题,您有两个选择:
1.继续使用邻近搜索Web服务Web服务仅与限制为IP地址的API密钥兼容。
由于您是从移动的应用程序环境发出请求,因此IP地址将因用户连接的位置而异。作为解决方法,您可以设置代理服务器:https://developers.google.com/maps/api-security-best-practices #mobile-ws-static-web
完成后,通过代理服务器的IP地址限制API密钥。
1.将您的实现切换到Places Library's Nearby Search在此配置中,从客户端发出请求。以以下格式对您的API密钥设置网站限制(其中domain.com是您的网站):https://__________________.com