无法通过节点红色

时间:2019-03-01 02:08:32

标签: ibm-cloud node-red watson-conversation

在ibm云中的节点红色中。我可以使用IBM Watson节点“助理工作区管理器”来检索特定的对话框节点。但是,我无法使用相同的“助手工作区管理器”来更新对话框节点。我不断收到错误消息“无效的请求正文”。

这不是凭据不正确的问题,因为我对两个实例使用相同的凭据。

下面是我的功能模块中的代码,该代码将信息传递给我的“助手工作区管理器”节点,以便它可以更新我的watson对话工作区中的对话框节点。

var uptime = msg.payload[1].d.uptime;
var message = "Server uptime is " + uptime + " seconds.";
msg.topic = "";
msg.dialog_node.output.generic[0].values[0].text = message;
msg.payload = msg.dialog_node;
return msg;

我从字面上看是将返回给我的对话框节点与包含我要注入的信息的消息组合起来,然后修改了有效负载(在尝试更新对话框节点之前),以便有效负载看起来像返回给我的对话框节点(已修改消息的文本除外)。

过去,通过手动格式化与返回的格式类似的msg.payload对象,我已经成功地做到了这一点。我也尝试过这种方法,但是当这种方法不起作用时,我尝试了这种方法。

任何建议将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:1)

这是因为针对watson-developer-cloud的基础Node.JS SDK已更新。 https://cloud.ibm.com/apidocs/assistant?code=node#update-dialog-node

您提供的JSON必须至少具有一个带有new_前缀作为关键字的字段。

因此在此示例中,条件正在更新:

{
  "type":"standard",
  "title":"Entry Point For Up Down Commands",
  "output":{},
  "context":
    {
      "appl_action":"increase"
    },
  "next_step":
    {
      "behavior":"jump_to",
      "selector":"condition",
      "dialog_node":"node_11_1467233013716"
    },
  "new_conditions":"#turn_up",
  "dialog_node":"Entry Point For Up Down Commands",
  "previous_sibling":"node_1_1487022155950"
}

我需要用此信息修改节点信息选项卡。