C# 将上下文信息从web应用程序传递到bot框架的最佳方式是什么

C# 将上下文信息从web应用程序传递到bot框架的最佳方式是什么,c#,botframework,C#,Botframework,我有一个web应用程序,用户可以在其中提出或查看它。我使用Microsoft bot框架和C#开发了一个聊天机器人,以支持特定案例。我使用一个iframe将bot嵌入到我的网站中。现在我想把上下文信息传递给我的机器人。例如,当用户单击网络聊天时,我想传递用户名并对其进行记录。最好的方法是什么 我知道您可以从Slack或Facebook等多个频道获取特定频道数据,但有没有办法创建我自己的自定义频道?不幸的是,您当前无法通过网络聊天频道发送任何隐藏信息 您可以使用DirectLine频道和。然后,您

我有一个web应用程序,用户可以在其中提出或查看它。我使用Microsoft bot框架和C#开发了一个聊天机器人,以支持特定案例。我使用一个iframe将bot嵌入到我的网站中。现在我想把上下文信息传递给我的机器人。例如,当用户单击网络聊天时,我想传递用户名并对其进行记录。最好的方法是什么


我知道您可以从Slack或Facebook等多个频道获取特定频道数据,但有没有办法创建我自己的自定义频道?

不幸的是,您当前无法通过网络聊天频道发送任何隐藏信息


您可以使用
DirectLine
频道和。然后,您可以在通道数据对象中传递任意数据,如您的姓名和票证id,如本文所述。在这里,他们正在发送身份验证令牌,但您可以在
channeldata
中放入任何需要的内容。您需要在bot中解析它,但它是可用的。这比WebChat通道要复杂得多,但目前还没有其他方法可以做到这一点。

在WebChat v4中,您可以通过自定义存储中间件将数据添加到任何传出活动的通道数据中;但是,这种方法不适用于嵌入式iFrame。您必须使用CDN或React

有关更多详细信息,请查看Web聊天示例和此示例

不带箭头功能的自定义存储
函数(ref){
常数调度=参考调度;
返回函数(下一步){
返回函数(动作){
如果(action.type==='DIRECT\u LINE/CONNECT\u completed'){
派遣({
键入:“网络聊天/发送事件”,
有效载荷:{
名称:'webchat/join',
值:{language:window.navigator.language}
}
});
返回下一步(操作);
}
}
}

希望你能成功。如果你觉得我的回答足够,请“接受”这样我就可以从我的支持跟踪器中清除此票证。如果没有,请告诉我还有什么可以帮助的!有没有办法创建没有箭头函数的自定义存储?我尝试转换为正常函数,但不起作用。我们要求它在IE11中工作,但它不支持箭头函数。我在cod的其他区域进行了更新e和am使用webchat-es5.js,但商店不工作。@billoverton我更新了我的问题,包括如何创建没有箭头功能的自定义商店。