我将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/