Я использую ниже nodejs код. обе функции вызываются моим чат-ботом, поэтому я не могу распечатать вывод на консоль.
https://docs.oracle.com/en/cloud/paas/digital-assistant/tutorial-cc-dev/files/completecode.txt
приведенный выше код прекрасно работает. Я делаю свой код в той же строке, но мой код не работает. Кто-нибудь может помочь мне отладить то же самое. Ниже мой код. Оба кода, возвращающие выходные данные, использованные от restAPI
до chatbot
.
'use strict';
var request = require('request');
module.exports = {
metadata: () => ({
name: 'ItemCost',
properties: {
variable: { required: true, type: 'string' },
itemName: { required: true, type: 'string' }
},
supportedActions: ['success', 'failure']
}),
invoke: (conversation, done) => {
const { variable } = conversation.properties();
const { itemName } = conversation.properties();
conversation.logger().info("Input parameter values: variable: " + variable + ", itemname: " + itemName);
var reqUrl = "http://localhost:8080/ords/hr/rest-v3/item/Sugar";
request(reqUrl, { json: true }, (err, res, body) => {
if (res.statusCode == 200) {
if (body.success) {
var cost;
conversation.logger().info("Successful conversion");
let jsonData = JSON.parse(res.body);
let obj = new Object(jsonData);
obj.items.forEach(itemChild => { cost = itemChild.itemcost; });
let result = {};
result.itemCost = cost
conversation.variable(variable, result);
//conversation.reply("Hello);
conversation.transition('success');
conversation.keepTurn(true);
done();
}
else {
conversation.logger().warn("error type: " + body.eror.type);
if (body.error.hasOwnProperty("info")) {
conversation.logger().warn("error message: " + body.error.info);
}
conversation.transition('failure');
conversation.logger().warn("Error code: " + res.statusCode);
done();
}
}
else {
conversation.transition('failure');
done();
}
});
}
};