最近我在Google Play控制台中收到了此提醒
您的应用包含公开的Google Cloud Platform(GCP)API密钥
我正在使用YouTubeApi播放器,我相信唯一可以初始化它的原因是使用此行代码
youTubePlayer.initialize(DEVELOPER_KEY, this);
因此,除了对我的API密钥增加了限制之外,还有其他方法可以从代码中删除API密钥吗?
我曾尝试按照Google的建议使用GCP服务帐户,但看不到如何在没有初始化代码行的情况下仍然可以使用YouTube播放器。
答案 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: