我将Microsoft Bot Framework与Node.js结合使用以实现聊天机器人。我尝试在“ LimeSurvey” -Survey中使用此聊天机器人(您可以使用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>

最佳答案

我希望您已使用直接通道设置了聊天机器人,并且它处于工作状态。

要获得漫游器的响应,您可以收听直接渠道的活动事件。

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://docs.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/

10-12 07:37
查看更多