IBM Watson 音调分析器发布请求问题

Posted

技术标签:

【中文标题】IBM Watson 音调分析器发布请求问题【英文标题】:IBM Watson tone analyzer post request issue 【发布时间】:2017-11-21 21:29:45 【问题描述】:

我是学生,正在学习编程并感谢社区的帮助。我在heroku 中托管了我的代码,域名为https://depionicapp.herokuapp.com/。当我与邮递员进行发布请求时,我收到错误 500 但使用云 9 我能够得到结果。

var http = require('http');
var bodyParser = require("body-parser")
var vision = require('@google-cloud/vision');
// Authorizing on a per-API-basis. You don't need to do this if you auth on a 
// global basis (see Authorization section above). 
var express = require('express');
var router = express();

var visionClient = vision(
  projectId: 'ionic-face-api',
  keyFilename: './ionic.json'
);

router.use(bodyParser.urlencoded(extended: false ));
router.use(bodyParser.json());

router.use(function(req, res, next) 
  res.header("Access-Control-Allow-Origin", "*");
  res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
  next();
);

var server = http.createServer(router);
router.post('/info', function(req, res) 
  var text = req.body.text;
  console.log(text)
  var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');

  var tone_analyzer = new ToneAnalyzerV3(
    username: 'username',
    password: 'password',
    version_date: '2016-05-19'
  );

  tone_analyzer.tone(
      text: text
  , function(err, tone) 
    if (err)
     console.log(err);
    else
     res.send((JSON.stringify(tone, null, 2)));
  );
);

邮递员:

Postman request: https: //depionicapp.herokuapp.com/info
Content - Type: application / json 
Body I am sending from postman
"text": "I am good.....blah blah..." // Error 500

【问题讨论】:

【参考方案1】:

所以,想帮助你。我编辑了您的代码,删除了视觉模块,然后在 Node.js 中创建了一个服务器来测试您的代码,效果很好。

文件toneExample.js:

var http = require('http');
var bodyParser = require("body-parser");
var express = require('express');
var router = express();

router.use(bodyParser.urlencoded(extended: false));
router.use(bodyParser.json());

router.post('/info', function(req, res) 
    var text = req.body.text;
    console.log(text)
    var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');

    var tone_analyzer = new ToneAnalyzerV3(
     username: 'yourUsername',
     password: 'yourPassword',
     version_date: '2016-05-19'
     );

    tone_analyzer.tone(
        text: text
    , function(err, tone) 
    if (err) console.log(err);
    else res.send((JSON.stringify(tone, null, 2)));
    )
);

module.exports = router;

文件 server.js:

var server = require('./toneExample.js');
var port = process.env.PORT || process.env.VCAP_APP_PORT || 3000;

server.listen(port, function() 
  console.log('Server running on port: %d', port);
);

执行node server.js 后,我在POSTMAN 中为/info 端点做了一个示例,结果成功:

信息

节点版本:6.11.2 已安装的模块:expressbody-parserwatson-developer-cloud

Obs.:如果您使用version_date: 2017-09-21 后语气 ID 的返回结果:愤怒、恐惧、喜悦、悲伤、分析、自信和试探性。并且仅返回分数满足0.5最低阈值的音调。

在Official API Reference 中查看更多信息。我建议您尝试检查您需要发送的标头,您可以在您的正文中使用的类型post,诸如此类。

【讨论】:

感谢先生的回复。我只是检查一下。 感谢您的大力帮助。我非常感谢您的帮助。它现在正在工作。 太棒了!请标记 *** 中guide 后面的问题,并帮助其他人解决同样的问题。

以上是关于IBM Watson 音调分析器发布请求问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 ibm_watson python 包中的“ToneAnalyzerV3”,如何排除特定音调?

使用在服务器端获取的 IBM Bluemix 音调分析器令牌时客户端出错

IBM 音调分析仪在本地工作正常,但不能在 prod 上工作

如何在熊猫框架中显示 IBM 色调分析器的输出

有图有故事 - Watson Analytics 解析幸福指数

国外物联网平台初探:IBM Watson IoT