首页 > 解决方案 > IBM Watson Visual Recognition API、Node.js:未经授权:由于凭据无效,访问被拒绝

问题描述

我正在尝试使用 IBM 网站上的应用程序代码来检测图像中的人脸。我住在澳大利亚,Unauthorized: Access is denied due to invalid credentials当我打电话时我不断收到这个错误node app.js
这是我的代码:

function main(params) {
  return new Promise(function (resolve, reject) {
    var res = {};

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

    var url = params.url || 'https://gateway-a.watsonplatform.net/visual-recognition/api' ;
    var use_unauthenticated =  params.use_unauthenticated || false ;

    const visual_recognition = new VisualRecognitionV3({
      'api_key': params.api_key,
      'version_date': '2016-05-20',
      'url' : url,
      'use_unauthenticated': use_unauthenticated
    });

    visual_recognition.detectFaces({'url': params.imageurl}, function(err, res) {
      if (err)
        reject(err);
      else
        resolve(res);
    });
  });
}

const defaultParameters = {
  'api_key': 'API KEY',  
  'imageurl': 'https://www.whitehouse.gov/sites/whitehouse.gov/files/images/' +
         'first-family/44_barack_obama%5B1%5D.jpg',
  'url' : 'https://gateway-a.watsonplatform.net/visual-recognition/api',
  'use_unauthenticated' : true
}

if (require.main === module)
  main(defaultParameters)
    .then((results) => console.log(JSON.stringify(results, null, 2)))
    .catch((error) => console.log(error.message));

我究竟做错了什么?为什么我总是收到这个错误???

标签: javascriptnode.jsibm-cloud

解决方案


在大多数情况下,是因为您使用了错误的端点。检查您应该针对您的 Watson Visual Recognition 实例使用哪个 url。这将是您获得钥匙的同一个地方。

var url = params.url || 'https://gateway-a.watsonplatform.net/visual-recognition/api' ;

检查您拥有的params.url内容以及url设置的内容。


推荐阅读