【问题标题】:IBM Watson Visual Recognition (NodeJS) - Error code 403 : Forbidden: Access is denied due to invalid credentialsIBM Watson Visual Recognition (NodeJS) - 错误代码 403:禁止访问:由于凭据无效,访问被拒绝
【发布时间】:2020-02-21 13:38:38
【问题描述】:

我目前在以下环境中使用 Watson Visual Recognition API,但收到 403 invalid credential 错误。 供您参考,我在 VMware Workstation 15.5.1 的 Ubuntu Server 16.04.6 LTS 上运行它。 Node js 代码来自以下 URL 中的 IBM Cloud 网页,我在凭据中输入了 api 密钥。 我已经使用以下命令和the guide 安装了 npm。

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

var visualRecognition = new VisualRecognitionV3({
  version: '2018-03-19',
  iam_apikey: 'Hy-N8Lxxxxxxxxxxxxxxxxxxxxxxxxxxxx'  // used api key in my credentials
});

var url= 'https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/640px-IBM_VGA_90X8941_on_PS55.jpg';

var params = {
  url: url,
};

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

当我在命令行中执行命令node {filename}.js 时,我收到如下错误消息。对于这个错误,代码是 403,当我输入错误的 API 密钥时,会出现错误代码 400,所以我认为错误不是在错误的 api 密钥上。

Forbidden: Access is denied due to invalid credentials.
    at formatError (/home/byungmin/visual_recognition/node_modules/ibm-cloud-sdk                                       -core/lib/requestwrapper.js:111:17)
    at /home/byungmin/visual_recognition/node_modules/ibm-cloud-sdk-core/lib/req                                       uestwrapper.js:259:19
    at processTicksAndRejections (internal/process/task_queues.js:94:5) {
  name: 'Forbidden',
  code: 403,
  message: 'Access is denied due to invalid credentials.',
  body: '{"code":403,"error":"Forbidden"}',
  headers: {
    'content-type': 'application/json',
    'content-length': '34',
    'strict-transport-security': 'max-age=31536000; includeSubDomains;',
    'x-edgeconnect-midmile-rtt': '224',
    'x-edgeconnect-origin-mex-latency': '49',
    date: 'Fri, 21 Feb 2020 12:56:10 GMT',
    connection: 'close'
  }
}

如果您能帮助我找到解决此问题的方法,我们将不胜感激。

【问题讨论】:

    标签: node.js express ibm-watson http-status-code-403 visual-recognition


    【解决方案1】:

    轻量级帐户试试这个:

        const fs = require('fs');
        const { IamAuthenticator } = require('ibm-watson/auth');
        var VisualRecognitionV3 = require('watson-developer-cloud/visual-recognition/v3');
    
    
            var visualRecognition = new VisualRecognitionV3({
              authenticator: new IamAuthenticator({
                apikey: 'Hy-N8Lxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    
              }),
              url: 'https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/640px-IBM_VGA_90X8941_on_PS55.jpg',
            });
    
    var params = {
      url: url,
    };
    
    visualRecognition.classify(params, function(err, response) {
      if (err) {
        console.log(err);
      } else {
        console.log(JSON.stringify(response, null, 2))
      }
    });
    

    【讨论】:

    • 有效!不添加“const { IamAuthenticator } = require('ibm-watson/auth');”代码是问题。
    【解决方案2】:

    这是一个“精简”(免费)计划吗?使用该计划,您将在一个月内限制为 1000 张用于训练和标记的图像。您很可能已达到该限制。将您的帐户升级到 Standard 将保留所有经过训练的分类器,并允许尽可能多的使用。

    【讨论】:

    • 其实我开始做这个的时间不长。我认为这与图像数量限制无关。
    【解决方案3】:

    如果 Lite 计划超额不是您的问题,请检查您是否在 url: url 指定了基本 URL,并且该 URL 与您使用的 API 密钥的凭据中显示的 URL 匹配。详情请见API reference。

    【讨论】:

    • 不添加“const { IamAuthenticator } = require('ibm-watson/auth');”代码是问题。
    猜你喜欢
    • 1970-01-01
    • 2021-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 1970-01-01
    • 2012-10-28
    • 2023-03-24
    相关资源
    最近更新 更多