12

我试图运行示例应用程序,在这里找到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"
}
4

6 回答 6

8

我怀疑您正在创建一个仅限于您的应用程序的 Android API 密钥,并注册了您的 sha1 指纹。

这很棒!不幸的是,非 android 专用的 Google API java 客户端库还不完全支持对 android api 密钥的 API 请求,就像android 专用的那样。这意味着 API 请求不包括一些用于向 API 端点验证密钥/应用程序的标头,这会导致该错误(请注意client application <empty>错误消息中的 -<empty>如果请求按预期形成,则将是您的包名称)。

我仍在寻找该怎么做 - 如果/当我找到一个时会更新。

于 2016-02-23T19:08:42.713 回答
5

我有同样的问题。但我解决了这个问题。

如果您添加浏览器 API 密钥,您的代码运行良好。

于 2016-02-23T05:38:08.930 回答
0

您可能还将 API 密钥限制为仅允许来自 Android 应用程序的请求。将其更改为None,它将接受所有请求,但是,这也意味着安全性降低。

于 2021-11-17T20:52:50.573 回答
0

你在android项目中做了什么改变?确保启用 Cloud Vision API 并启用计费。我所要做的就是使用 Github 中的相同示例在 MainActivity 中添加我的 API 密钥。

看看我的截图

于 2016-02-22T23:52:02.357 回答
0

这里有问题,我解决了!!!!!

只需放置服务器密钥!

在此处输入图像描述

希望它可以帮助某人

于 2016-03-09T10:47:25.107 回答
0

我相信使用浏览器密钥可以解决您的问题。但实际的解决方案是使用 OAuth 密钥。就像一个 Android 应用程序应该做的那样。

  1. 为此,请从 Cloud Developer Console 的侧面菜单中转到凭据部分。
  2. 单击凭据下拉菜单并选择 OAuth 客户端 ID。
  3. 选择应用程序类型为 Android。
  4. 为 Cloud Vision API 添加合适的名称,例如 Android 客户端
  5. 以所需格式输入您的 SHA1 指纹。使用屏幕上提到的命令。
  6. 输入您的应用程序的包名称,可以位于您的 gradle 的 defaultConfig 块中。
  7. 点击创建。

这是此处完整教程的摘录。

于 2016-06-05T13:53:56.753 回答