【问题标题】:MS Bot Framework pass the values from server code (C# ) to front end code (JavaScript)MS Bot Framework 将值从服务器代码 (C#) 传递到前端代码 (JavaScript)
【发布时间】:2020-03-11 18:02:14
【问题描述】:

我一直在使用 MS bot 框架 - 我的项目中的聊天机器人,我在后端使用 QnAMaker 用于我的聊天机器人,该聊天机器人在直线机器人频道中运行。

在使用 JavaScript 前端代码加载页面时,我在询问后通过 createStore 方法向机器人(c# 代码 - 服务器托管)发送一些值 say ABC机器人将使用 ABC 作为严格过滤器开始在 qnamaker 中查询的问题。

一段时间后,在某种情况下,我将向 BOT 提供输入并将值更改为 XYZ。到目前为止一切都很好。

现在,我想获取值 XYZ 并在我的前端 JavaScript 代码中更新它。

换句话说,我想反转 createstore 方法。或创建从服务器端到客户端的通信

有什么办法可以达到我的要求。

【问题讨论】:

    标签: javascript botframework c#-3.0 direct-line-botframework qnamaker


    【解决方案1】:

    您可以利用同一个商店来接收来自机器人的任何活动(以前称为反向通道方法)。例如,您可以从您的机器人发送 event 类型的活动,并结合 namevalue

    机器人 (JavaScript)

    await context.sendActivity({
        type: ActivityTypes.Event,
        name: 'sample:backchannel',
        value: 'XYZ'
    });
    

    机器人 (C#)

    await turnContext.SendActivityAsync(
        new Activity { 
            Type = ActivityTypes.Event, 
            Name = "sample:backchannel",
            Value = "XYZ"
        }
    );
    

    网络聊天

    const store = window.WebChat.createStore(
        {},
        ({ dispatch }) => next => action => {
            if (action.type === 'DIRECT_LINE/INCOMING_ACTIVITY') {
                const { activity } = action.payload;
    
                if (activity.type === 'event' && activity.name === 'sample:backchannel') {
                    alert(activity.value); // Do whatever you want in your front-end
                }
            }
    
            return next(action);
        }
    );
    

    View full sample 在 BotFramework-Webchat 文档中

    【讨论】:

    • 嗨@Mick,感谢您的回复。现在我对此有了一些想法。如果您提供一个工作示例机器人代码 - 带有 sendactivity 实现的 C# 代码,那就太好了。我正在使用调度机器人模板,因此在插入 await context.sendActivity 代码时遇到了一些困难。
    • 抱歉,我错过了您使用 C# 编写机器人代码。我添加了一个 C# 示例,您可以尝试一下。我还不能测试它,而且 C# 不是我的主要语言,但它应该与 Javascript 示例非常相似。
    猜你喜欢
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多