Ibm cloud Can';t通过节点red更新watson对话服务中的对话节点

Ibm cloud Can';t通过节点red更新watson对话服务中的对话节点,ibm-cloud,node-red,watson-conversation,Ibm Cloud,Node Red,Watson Conversation,在ibm云中的节点红色中。我能够使用IBMWatson节点“助手工作区管理器”检索特定的对话框节点。但是,我无法使用相同的“助手工作区管理器”来更新对话框节点。我一直收到错误消息“无效的请求正文” 这不是凭证不正确的问题,因为我对这两个实例使用相同的凭证 下面是我的功能模块中的代码,它将信息传递到我的“助手工作区管理器”节点,以便它可以更新我的watson对话工作区中的对话节点 var uptime = msg.payload[1].d.uptime; var message = "Server

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

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

下面是我的功能模块中的代码,它将信息传递到我的“助手工作区管理器”节点,以便它可以更新我的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;
我将返回给我的dialog节点与包含我想要注入的信息的消息结合起来,然后修改负载(在尝试更新我的dialog节点之前),使负载看起来与返回给我的dialog节点完全相同(除了修改消息的文本)

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

如有任何建议,将不胜感激


提前感谢。

这是因为watson developer cloud的底层Node.JS SDK已经更新

您提供的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"
}

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

可能是您可以在调试节点中传递消息,查看此消息的属性,然后更改/设置正确的属性。您是学者和绅士。非常感谢您的快速回复。这是正确的答案。对于我的问题,我只需将“output”更改为“new_output”,因为这是我想要更新的内容。我没有从返回给我的dialog_节点中提取,而是在函数中手动构建json。