使用.js更新上下文变量。这是可能的?

时间:2017-08-24 16:59:20

标签: javascript ibm-watson watson-conversation

我试图将用户名发送到我的WCS,但我不知道如何使用请求执行此操作。我的请求要求用户发送电子邮件并使用js脚本从我的sql server返回一个json ...

我做了类似的事情:

您的电子邮件是什么? // WCS
caique.rodrigues@test.com //用户
Just a minute.<script>getUserInformation('caique.rodrigues@test.com');</script> // WCS
nodeTrue // USER(我确认用户是否存在并获得用户名后发送了此信息。)
Hi <span id='myText'></span><script>document.getElementById('myText').innerHTML = userName;</script>! // WCS

我知道这不是最好的方法,但它正在发挥作用。我尝试使用&#34;输出:{&#39; action&#39;:}&#34;之类的东西来调用我的js函数。 (并在我的node.js中处理它,例如&#39;汽车仪表板样本&#39;),但是,它可以从我的.js发送变量到会话上下文?

1 个答案:

答案 0 :(得分:0)

几个月前我遇到了同样的问题。在这种情况下,我使用函数来访问客户端上的上下文变量(使用来自Ashley的this示例并访问context),但是,对于某些公司数据的安全问题,我确实需要在服务器端使用自定义代码...对于这种情况,您可以使用Watson Conversation的方法调用,并访问context variables并使用您自己的自定义代码创建值。

这样的事情:

conversation.message(payload, function (err, data) {
    data.context.yourValue = returnFromYourDatabase;
    if (err) {
      return res.status(err.code || 500).json(err);
    }
    updateMessage(payload, data, req, res);

  });
}); 

您可以看到函数updateMessage,此调用是IBM Developers中的一个示例,此函数用于更新每个请求中的消息。您也可以使用此功能进行设置,因为此函数可以从调用中获取参数。

例如:

function updateMessage(input, response) {
  response.context.yourValue = returnFromYourDatabase;
  var responseText = null;
  if (!response.output) {
    response.output = {};
  } 
}

有关使用Node.js的Watson Conversation Service,请参阅API Reference

请参阅IBM Developers的Project和Node.js。