具有公开GCP API密钥的YouTube Player API

时间:2019-08-05 17:54:02

标签: google-cloud-platform android-youtube-api android-security

最近我在Google Play控制台中收到了此提醒

  

您的应用包含公开的Google Cloud Platform(GCP)API密钥

我正在使用YouTubeApi播放器,我相信唯一可以初始化它的原因是使用此行代码

youTubePlayer.initialize(DEVELOPER_KEY, this);

因此,除了对我的API密钥增加了限制之外,还有其他方法可以从代码中删除API密钥吗?

我曾尝试按照Google的建议使用GCP服务帐户,但看不到如何在没有初始化代码行的情况下仍然可以使用YouTube播放器。

2 个答案:

答案 0 :(得分:0)

Using API Keys文档中有一些有关如何保护API密钥的技巧。

据说应该避免直接将API密钥嵌入代码中,这是您现在拥有的方式,因此您会收到警告消息。

按照该页面上的提示进行操作,您应该正确保护API密钥。一旦这样做,警告就会消失。

更新

为避免在评论中进行冗长的讨论,请允许我详细说明此更新。

Google提供了多种身份验证方式,可根据您的需求为您提供更多保护应用安全的选项。这些警告是有用的提示,可以使您的应用在生产或公开展示时更加安全。因此,在您的情况下,最好使用其他身份验证方式。

API密钥可以在服务器端使用。例如如果您正在使用API​​密钥通过App Engine应用程序对第​​三方服务进行身份验证,则可以使用此密钥,因为它无法公开。 (避免在JavaScript中使用API​​密钥,因为在浏览器中检查页面也会公开API密钥)

对于您而言,由于您正在开发Android应用程序和/或iOS应用程序,因此在代码中包含API密钥很危险。因为,任何人都可以使用.apk.ipa文件并找到访问它的方法。因此,对于开发Android应用程序和iOS应用程序,建议使用不同的身份验证方法。 YouTube播放器API支持的另一种身份验证方法是使用OAuth 2.0。有关更多信息,您可以查看Registering your application文档。

答案 1 :(得分:0)

我也遇到了同样的问题,并通过使用由google_services.json生成的字符串R.string.google_api_key解决了此问题

将代码更改为:

youTubePlayer.initialize(getString(R.string.google_api_key), this);

如何获取google_services.json: