【问题标题】:Update context variables using .js. Its possible?使用 .js 更新上下文变量。这是可能的?
【发布时间】:2017-08-24 16:59:19
【问题描述】:

我正在尝试将用户名发送到我的 WCS,但我不确定如何使用请求来完成此操作。我的对话要求用户提供电子邮件并使用 js 脚本从我的 sql 服务器返回一个 json...

我正在做这样的事情:

你的电子邮件是什么? // WCS
caique.rodrigues@test.com //USER
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

我知道这不是最好的方法,但它确实有效。我正在尝试使用“输出:{'action':}”之类的东西来调用我的 js 函数(并在我的 node.js 中处理它,就像“汽车仪表板示例”一样),但是,可以从我的 . js 到对话上下文?

【问题讨论】:

    标签: javascript ibm-watson watson-conversation


    【解决方案1】:

    几个月前我遇到了同样的问题。在这种情况下,我使用函数来访问客户端的上下文变量(使用 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 = {};
      } 
    }
    

    请参阅 API Reference 了解使用 Node.js 的 Watson 对话服务。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-15
      • 2015-12-14
      • 2012-09-09
      • 1970-01-01
      • 1970-01-01
      • 2016-07-02
      相关资源
      最近更新 更多