我正在尝试从 nodejs 应用程序使用音调分析器服务。我遇到未经授权的访问问题,但是当我在 curl 中使用这些凭据时,它们可以正常工作。
在本地运行,在我的 app.js 文件中,我包含了音调分析器的数据,如下所示:
var ToneAnalyzerV3 = require('watson-developer-cloud/tone-analyzer/v3');
var toneAnalyzer = new ToneAnalyzerV3({
version: '2017-09-21',
iam_apikey: 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
});
然后我添加了这个,所以我的应用程序在 /tone url 中监听发布请求:
app.post('/tone', function(req, res, next) {
var params = {'tone_input': req.body}
toneAnalyzer.tone(params, function(err, data) {
if (err) {
return next(err);
}
return res.json(data);
});
});
但是当我调用它时,我得到“未经授权:由于凭据无效而拒绝访问”。
问题是这些凭据在 curl 中可以正常工作:
curl -X POST -u "apikey:XXXXXXXXXXXXXXXXXXXXXXXXXXXXX" --header "Content-Type: application/json" --data-binary @tone.json "https://gateway-lon.watsonplatform.net/tone-analyzer/api/v3/tone?version=2017-09-21&sentences=false"
{"document_tone":{"tones":[{"score":0.6165,"tone_id":"sadness","tone_name":"Sadness"},{"score":0.829888,"tone_id":"analytical","tone_name":"Analytical"}]}}