【发布时间】:2021-11-25 18:34:18
【问题描述】:
我正在尝试在我的 Android 应用中仅使用密钥作为身份验证来实现 Google Cloud 的翻译 API。我没有服务器或任何东西来提高安全性,所以我想通过指定应用程序包名称和 SHA-1 哈希来限制 API 密钥只能由我的 Android 应用程序使用。以下是我在 Cloud API & Services 页面中使用的设置:
为确保信息正确,我将 Gradle App ID 设置为指定的包名称:
我在 windows 中为 SHA-1 哈希运行了提供的 keytool 命令:
Gradle 的签名报告工具也返回相同的哈希值:
当我尝试调用支持语言的简单 GET 请求时,响应始终是 403 Forbidden 错误。 但是,当我取消对仅 Android 应用程序和包/哈希设置的限制时,密钥有效。我显然在这里做错了什么还是忘记了什么?当我什至记录 BuildConfig.getPackage() 时,它返回相同的包名称。获取 SHA-1 哈希的两种方法都返回相同的哈希。我不确定出了什么问题。
【问题讨论】:
-
您在项目中启用了
Google TranslateAPI?您是否遵循任何文档来创建和使用 API?你用this docs了吗?你的问题和this Stack thread类似吗?
标签: android google-cloud-platform google-api google-oauth