Google Cloud Vision API 权限被拒绝
Google Cloud Vision API Permission Denied
我正在尝试 运行 示例应用程序,在此处找到 Github Sample,我已经创建了一个证书并创建了一个 API 密钥并按照说明应用。但是当我上传图像时,我得到了这个异常。我不知道我在哪里犯了错误。我错过了什么吗?
failed to make API request because {
"code": 403,
"errors": [{
"domain": "global",
"message": "Requests from this Android client application <empty> are blocked.",
"reason": "forbidden"
}],
"message": "Requests from this Android client application <empty> are blocked.",
"status": "PERMISSION_DENIED"
}
您在 android 项目中更改了哪些内容?确保启用云视觉 API 并启用计费。我所要做的就是使用 Github.
中的相同样本在 MainActivity 中添加我的 API 键
看看我的screenshot
我遇到了同样的问题。
但我解决了这个问题。
如果您添加浏览器 API 键,您的代码运行良好。
我怀疑您正在创建一个 Android API 密钥,仅限于您的应用程序,并注册了您的 sha1 指纹。
太棒了!不幸的是,non-android-specific Google API java client library doesn't yet fully support API requests for android api keys, like the android-specific 确实如此。这意味着 API 请求不包括一些 headers 将 key/app 验证到 API 端点,这会导致该错误(注意 client application <empty>
在错误消息 - 如果请求按预期形成,<empty>
将是您的包名称。
我仍在寻找解决办法 - 如果/当我找到一个时会更新。
这里有些问题,我解决了!!!!!
只需输入服务器密钥!!
希望对大家有所帮助
我相信使用浏览器密钥可以解决您的问题。但实际的解决方案是使用 OAuth 密钥。就像 Android 应用程序应该做的那样。
- 为此,请转到 Cloud Developer Console 侧边菜单中的凭据部分。
- 单击凭据下拉菜单和 select OAuth 客户端 ID。
- Select 申请类型为 Android.
- 为 Cloud Vision 添加一个合适的名称,例如 Android 客户端 API
- 以所需格式输入您的 SHA1 指纹。使用
屏幕上提到的命令。
- 输入您应用的包名,可以位于
gradle.
的 defaultConfig 块
- 点击创建。
这是完整教程的节选 here。
您可能还限制了 API 密钥以仅允许来自 Android 应用程序的请求。将其更改为 None
,它将接受所有请求,但是,这也意味着安全性降低。
我正在尝试 运行 示例应用程序,在此处找到 Github Sample,我已经创建了一个证书并创建了一个 API 密钥并按照说明应用。但是当我上传图像时,我得到了这个异常。我不知道我在哪里犯了错误。我错过了什么吗?
failed to make API request because {
"code": 403,
"errors": [{
"domain": "global",
"message": "Requests from this Android client application <empty> are blocked.",
"reason": "forbidden"
}],
"message": "Requests from this Android client application <empty> are blocked.",
"status": "PERMISSION_DENIED"
}
您在 android 项目中更改了哪些内容?确保启用云视觉 API 并启用计费。我所要做的就是使用 Github.
中的相同样本在 MainActivity 中添加我的 API 键看看我的screenshot
我遇到了同样的问题。 但我解决了这个问题。
如果您添加浏览器 API 键,您的代码运行良好。
我怀疑您正在创建一个 Android API 密钥,仅限于您的应用程序,并注册了您的 sha1 指纹。
太棒了!不幸的是,non-android-specific Google API java client library doesn't yet fully support API requests for android api keys, like the android-specific 确实如此。这意味着 API 请求不包括一些 headers 将 key/app 验证到 API 端点,这会导致该错误(注意 client application <empty>
在错误消息 - 如果请求按预期形成,<empty>
将是您的包名称。
我仍在寻找解决办法 - 如果/当我找到一个时会更新。
这里有些问题,我解决了!!!!!
只需输入服务器密钥!!
希望对大家有所帮助
我相信使用浏览器密钥可以解决您的问题。但实际的解决方案是使用 OAuth 密钥。就像 Android 应用程序应该做的那样。
- 为此,请转到 Cloud Developer Console 侧边菜单中的凭据部分。
- 单击凭据下拉菜单和 select OAuth 客户端 ID。
- Select 申请类型为 Android.
- 为 Cloud Vision 添加一个合适的名称,例如 Android 客户端 API
- 以所需格式输入您的 SHA1 指纹。使用 屏幕上提到的命令。
- 输入您应用的包名,可以位于 gradle. 的 defaultConfig 块
- 点击创建。
这是完整教程的节选 here。
您可能还限制了 API 密钥以仅允许来自 Android 应用程序的请求。将其更改为 None
,它将接受所有请求,但是,这也意味着安全性降低。