Google New Places API - 您的应用包含公开的 Google Cloud Platform
Posted
技术标签:
【中文标题】Google New Places API - 您的应用包含公开的 Google Cloud Platform【英文标题】:Google New Places API - Your app contains exposed Google Cloud Platform 【发布时间】:2020-01-17 22:04:54 【问题描述】:您的应用包含公开的 Google Cloud Platform (GCP) API 密钥,即类:
MainActivity->onCreate
有关如何解决此问题,请参阅以下文章: https://support.google.com/faqs/answer/9287711
在实施新的 google 地方 API 后,我从我的 google play 商店控制台收到此警报。我还使用我的 SHA 密钥对我的 API 密钥添加了限制。我使用了演示项目中的同一行。
https://github.com/googlemaps/android-places-demos/blob/master/demo/app/src/main/java/com/example/placesdemo/MainActivity.java(第 32 行)
我的代码
String apiKey = getResources().getString(R.string.google_api_key);
if (!Places.isInitialized())
Places.initialize(getApplicationContext(), apiKey);
这些行在导致此问题的 Activity 中使用。我需要知道如何解决这个问题。因为 Google new places API 也是我的要求,所以我无法避免在我的代码中使用这些行。
【问题讨论】:
在另一侧使用相同的 apiKey 时出现问题。只需重新生成此 apiKey。 已经尝试过了,即使对于新的 API Key 相同的问题。 请查看此链接,这将有助于***.com/a/58116098/9724887 【参考方案1】:问题是您直接将您的 google api 密钥保存在 strings.xml
中。因此,任何人都可以轻松获取您的密钥并使用它,如果他们提取了您的 apk 文件,即使您使用了 proguard,它也无济于事。
您可以采取这些步骤来帮助最大限度地减少 API 密钥的泄露
通过发出请求从服务器获取 Api 密钥。该 api 应该仅适用于您的应用程序中的授权用户。即使这样也不是 100% 安全,但它比在应用程序中简单地保留 api 密钥要好。 定期重新生成 API 密钥。您可以从Credentials 页面通过单击为每个密钥重新生成密钥来重新生成 API 密钥。然后,更新您的应用程序以使用新生成的密钥。在您生成替换密钥后,您的旧密钥将继续工作 24 小时 为 API 密钥添加限制,查看this 部分了解如何操作【讨论】:
谢谢!已经添加了限制。我将从服务器获取密钥并检查。以上是关于Google New Places API - 您的应用包含公开的 Google Cloud Platform的主要内容,如果未能解决你的问题,请参考以下文章
Google Places API 结果与 Google 搜索不匹配
如何使用 React 和 Google Places API 在 Google 地图上显示地点标记?
在代码中获取地址自动完成(JavaScript API 的 Google Places 库)请求计数
如何从 Android/Java 中的 Google Places API 获取有关地点的确切子类别名称? [复制]