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 获取有关地点的确切子类别名称? [复制]

从google places api保存和刷新place_id的最佳做法是什么?

反应:Google Places API/ Places 详细信息