仅限我的 Android 应用程序访问 Google Web Services API

问题描述 投票:0回答:2

这是 StackOverflow 上的另一个问题 的跟进。

有什么方法可以限制我的 Android 应用程序仅访问 Google Web Services API(在我的例子中是Places API Web Service)? 我想从 place details 获取“address_components”字段,我不能使用 Android API 函数,因为该字段在 returned object.

我选择了 Android 应用程序密钥限制并在 Google 开发者控制台中输入了我的应用程序详细信息(程序包名称 + SHA-1 证书指纹)。我收到“您的 API 密钥上配置了每个 IP 或每个 Referer 限制……”错误消息,这是预期的。

我尝试填写“X-Android-Package”和“X-Android-Cert”标头,但注意事项已更改。有什么办法吗?

android google-places-api
2个回答
0
投票

Android 应用程序限制仅在您将密钥与 Android API 一起使用时才有效,唉(文档可能对此更清楚)。

如果您计划从您的移动应用程序调用 Web 服务,那么首选方法是通过服务代理移动调用,这样 API 密钥就不会嵌入到移动应用程序中。 这篇博文中有更多关于这种方法的内容,它链接到这个视频


0
投票

我正在分享云支持团队对这个问题的回应。希望它有效。

要解决这个问题,您有两个选择:

  1. 继续使用附近搜索网络服务 Web 服务仅与限制为 IP 地址的 API 密钥兼容。

由于您是从移动应用程序环境发出请求,IP 地址将根据用户连接的位置而有所不同。作为解决方法,您可以设置代理服务器: https://developers.google.com/maps/api-security-best-practices #mobile-ws-static-web

完成后,通过代理服务器的 IP 地址限制您的 API 密钥。

  1. 将您的实现切换到 Places Library 的附近搜索 在此配置中,请求是从客户端发出的。以这种格式为您的 API 密钥设置网站限制(其中 domain.com 是您的网站): https:// ____________________.com
© www.soinside.com 2019 - 2024. All rights reserved.