从网络聊天窗口触发事件或消息到机器人(MS机器人框架)

时间:2019-07-30 15:09:10

标签: javascript botframework bots direct-line-botframework

使用下面的代码通过机械人向直线产生事件。

<!DOCTYPE html>
    <html>
    <head>
        <link href="https://cdn.botframework.com/botframework-webchat/latest/botchat.css" rel="stylesheet" />
    </head>
    <body>
        <div>
            <div id="bot" />
        </div>
        <script src="https://cdn.botframework.com/botframework-webchat/latest/botchat.js"></script>
        <script>
            var user = {
                id: 'user-id',
                name: 'user name'
            };
            var botConnection = new BotChat.DirectLine({
                token: 'MYTOKENHERE',
                user: user
            });
            BotChat.App({
                user: user,
                botConnection: botConnection,
                bot: { id: 'bot-id', name: 'bot name' },
                resize: 'detect'
            }, document.getElementById("bot"));
            botConnection
                .postActivity({
                    from: user,
                    name: 'requestWelcomeDialog',
                    type: 'event',
                    value: ''
                })
                .subscribe(function (id) {
                    console.log('"trigger requestWelcomeDialog" sent');
                });
        </script>
    </body>
</html>

我有处理来自机器人的任何事件/消息的代码。当我键入hi或任何消息时,它将起作用。但是,当我按照MS bot框架文档所承诺的那样将聊天机器人作为对话更新活动加载时,并不是自动进行的。 谁能帮忙吗?

2 个答案:

答案 0 :(得分:0)

对于初学者来说,您似乎正在使用Web Chat v3,该版本已弃用,不再受支持。我建议您切换到Web Chat v4,尤其是在您刚刚入门时。请注意,Web Chat v4确实适用于v3 Bot。看一下Web Chat Samples,以开始使用v4。

此外,我假设您是在谈论Web聊天中未正确发送欢迎消息。如果是这种情况,请查看此GitHub answer。它讨论了如何在网络聊天中正确发送欢迎消息。如果您不打算切换到v4,则答案中讨论的某些原理仍然适用于Web Chat v3。

答案 1 :(得分:0)

您必须处理您的漫游器代码上的请求。像这样检查“ requestWelcomeDialog”。这应该在您的MainDialog中。

   protected override async Task OnEventActivityAsync(ITurnContext<IEventActivity> turnContext, CancellationToken cancellationToken)
        {
            if (turnContext.Activity.Name == "requestWelcomeDialog")
            {
                //send activity here
            }
        }
相关问题