我使用 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
}
});
因此,在监听器中,您可以跟踪所有事件消息并采取行动。在您的情况下,根据对话显示不同的结果。
我建议您阅读这些-
关于javascript - 有没有办法根据对话结果将信息从 Microsoft 聊天机器人发送到网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54084910/