javascript - 来自 Google Vision API 的空响应以及存储在 Google Cloud Storage 中的图像

标签 javascript node.js google-cloud-vision

我正在尝试使用云视觉 API,并且能够成功发出请求,但我的响应返回为空,即使 API 文档中提供了测试图像也是如此。

请求正文:

const imagePath = `gs://[bucket_name]/faulkner.jpg`;
const requestObject = {
  requests: [
    {
      image: {
        source: {
          gcsImageUri: imagePath
        }
      },
      features:[
        {
          type: 'LABEL_DETECTION',
          maxResults: 100
        }
      ]
    }
  ]
};

faulkner.jpg

响应正文:

{
  "responses": [{}]
}

我什至尝试过使用云 API 控制台并复制请求字段,但这也行不通

const apiKey = 'myAPIKey';
const fields = `fields=responses(labelAnnotations)&`;
const visionAPI = `https://vision.googleapis.com/v1/images:annotate?${fields}key=${apiKey}`;

如有任何帮助,我们将不胜感激。

最佳答案

我遇到了这个确切的问题,这对我有用...

  1. 您不需要 OAuth,只需要一个 API key 。

这是我做错了...

在我的 HTTP 调用中,我需要将我的请求包装在一个新的对象字面量中,如下所示

{data: requestBody }

澄清一下,

// My old call
HTTP.call("POST", "https://vision.googleapis.com/v1/images:annotate?key=myAPIKey", requestBody, myCallback);

// To my new call
HTTP.call("POST", "https://vision.googleapis.com/v1/images:annotate?key=myAPIKey", {data: requestBody}, myCallback);

// reqeustBody example

{
  "requests":
    [
      {
        "features":
          [
            {
              "type": "LABEL_DETECTION"
            } 
          ],
        "image":
          {
            "source":
              {
                "gcsImageUri": "gs://myBucketNameHere/myDemoImageNameHere.jpg"
              }
          }
      }
    ]
  }

注意:一些需要做的事情。

  1. 图像在您的 Google Cloud Platform 存储桶中。
  2. 图像名称在调用中与在存储中一样准确。
  3. 图像必须有要检测的东西,即如果使用 FACE_DETECTION,图像必须有人脸。
  4. Google Cloud Platform Storage 中的图像必须被选中以公开共享

我对名为 demo-image.jpg 的图像使用与上面完全相同的调用,现在我包装了 requestBody 后一切正常。

关于javascript - 来自 Google Vision API 的空响应以及存储在 Google Cloud Storage 中的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35687208/

相关文章:

javascript - 创建 Node.js Express 应用程序时出错。找不到

javascript - Jest - 期望抛出消息测试

javascript - 如何将 Firebase 存储镜像与 Google Cloud Vision API 一起使用?

JavaScript/Jquery : How to paginate a JSON object?

c# - 使用 C# 或 javascript 比较两个字符串数组

javascript - 循环 JSON 并写入 Node 中的文件时获取 null

python - 使用 GCP 的 Cloud Vision 进行车牌识别

detection - Google Cloud Vision API 是否有任何选项可以从扫描的图像中检测并返回表格(带标题的行和列)?

javascript - jQuery:如何检测页面将在刷新时返回的偏移量?

javascript - 创建 DOM 树的函数中的递归