【问题标题】:IBM Watson Visual Recognition - Access is denied due to invalid credentialsIBM Watson Visual Recognition - 由于凭据无效,访问被拒绝
【发布时间】:2018-06-05 15:25:50
【问题描述】:

我正在尝试将 IBM Watson Visual Recognition 工具与 nodejs (express) 结合使用。 我按照guide 的说明进行操作,但无法连接该工具。

var fs = require('fs');
var VisualRecognitionV3 = require('watson-developer-cloud/visual-recognition/v3');

var visualRecognition = new VisualRecognitionV3({
    version: '2018-03-19',
    api_key: 'api key',
});

var images_file = fs.createReadStream('public/images/fruitbowl.jpg');

var classifier_ids = ["food"];

var params = {
    images_file: images_file,
    classifier_ids: classifier_ids
};

visualRecognition.classify(params, function(err, response) {
    if (err)
        console.log(err);
    else
        var resp = JSON.stringify(response, null, 2)
        console.log(JSON.stringify(response, null, 2))
});

当我运行我的 nodejs 应用程序时,我收到了这条消息

错误:未经授权:由于凭据无效,访问被拒绝。

有人知道这个身份验证问题的解决方案吗?

【问题讨论】:

  • 我知道这可能是一个侮辱性的问题,但既然这是您的第一篇文章……您是否将“api key”替换为您的实际 api 令牌?
  • 是的,我做到了哈哈 :)

标签: javascript node.js express ibm-watson visual-recognition


【解决方案1】:

您的仪表板可能如下所示,其中列出了您的 API 密钥。如果你有一堆iam_**** 属性,你可能需要使用iam_apikey 而不是api_key 进行身份验证。

根据Watson Authentication documentation,您可能应该使用如下代码进行身份验证:

const fs = require("fs");
const VisualRecognition = require("watson-developer-cloud/visual-recognition/v3");

const vr = new VisualRecognition({
    version: "2018-03-19",
    iam_apikey: "MY_API_KEY" // Instead of api_key
});

const images_file = fs.createReadStream("./fruit.jpg");

vr.classify({
    images_file,
    classifier_ids: ["food"]
}, (err, res) => {
    if (err) {
        throw err;
    }
    console.log(JSON.stringify(res));
});

在此图像上使用该代码:Wikipedia Fruit,会产生以下结果:

{
  "images": [
    {
      "classifiers": [
        {
          "classifier_id": "food",
          "name": "food",
          "classes": [
            {
              "class": "non-food",
              "score": 0.946
            }
          ]
        }
      ],
      "image": "fruit2.jpg"
    }
  ],
  "images_processed": 1,
  "custom_classes": 0
}

【讨论】:

  • 感谢您的回答,即使我输入 'iam_apikey' 而不是 'api_key',它也无法连接。 “MY_API_KEY”是否与 Watson 仪表板中的“apikey”相同?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 2018-02-23
  • 2012-10-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多