javascript - 有没有办法根据对话结果将信息从 Microsoft 聊天机器人发送到网站

标签 javascript html azure botframework limesurvey

我使用 Microsoft Bot Framework 和 Node.js 来实现聊天机器人。我尝试在“LimeSurvey”调查中使用此聊天机器人(您可以使用 HTML 代码将该机器人集成到调查中,因此您基本上可以假设它是一个正常的网站)。根据对话的结果,我想在该网站上显示不同的信息。假设对话可以有 10 种不同的结果。有什么方法可以将对话的“结果”传达给网站并根据结果显示不同的信息?能够向网站发送 1 到 10 之间的数字就足够了。我可以使用 iframe 来集成机器人,也可以按照下面的代码所示进行操作:

<!DOCTYPE html>
<html>
  <body>
    <div id="webchat" role="main"></div>
    <script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
    <script>
      window.WebChat.renderWebChat({
        directLine: window.WebChat.createDirectLine({ secret: 'M_BOT_SECRET_FROM_AZURE_PORTAL' }),
        userID: 'YOUR_USER_ID'
      }, document.getElementById('webchat'));
    </script>
  </body>
</html>

最佳答案

我希望您已经使用直线 channel 设置了聊天机器人并且它处于工作状态。

要获取机器人的响应,您可以监听直线 channel 的事件事件。

const botConnection = new BotChat.DirectLine({
    domain: params['domain'],
    secret: <secret_key>,
    token: <any_params>,
    webSocket: params['webSocket'] && params['webSocket'] === 'true' // defaults to true
 });

  BotChat.App({
    bot: bot,
    botConnection: botConnection,
    user: user,
    locale: userDetail.userLanguage,
  }, document.getElementById('chatBot'));


    //listening to activities sent and received
    botConnection.activity$
    .subscribe(function(activity){
        if(activity.type == "message" && activity.text == <some_response_from_bot>){
            //your logic to show on the web page
        }
    });

因此,在监听器中,您可以跟踪所有事件消息并采取行动。在您的情况下,根据对话显示不同的结果。

我建议您阅读这些-

https://github.com/Microsoft/BotFramework-DirectLineJS

https://learn.microsoft.com/en-us/azure/bot-service/rest-api/bot-framework-rest-direct-line-3-0-receive-activities?view=azure-bot-service-4.0

关于javascript - 有没有办法根据对话结果将信息从 Microsoft 聊天机器人发送到网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084910/

相关文章:

html - 如果边距和填充设置为 0,为什么控件之间会有空间?

Azure 中的 ASP.NET Core 环境变量

Azure 身份 : Custom token validation to validate issuers in a multi tenant app

javascript - 如何使用 phantomJS 截屏 div

javascript - 如何使用 iframe 在鼠标悬停时触发事件

javascript - 不影响表单字段值的 IE 占位符修复

javascript - 添加固定位置后防止页面滚动到顶部

javascript - Cosmos DB Mongo API 如何管理 "Request Rate is Large"条件

javascript - ExtJS 6 - 存储 $binding 未定义

javascript - 移动 noscript 消息