【问题标题】:Send context from bot - Microsoft bot framework从机器人发送上下文 - Microsoft 机器人框架
【发布时间】:2020-04-02 21:11:08
【问题描述】:

我正在使用 Microsoft Bot 框架开发 Bots,并且我有一个用例,我的 bot 必须将自定义上下文信息发送到我的应用程序。我正在考虑使用 ChannelData 如下所示。 这是一个正确的占位符吗?

      Dictionary<string, string> context = new Dictionary<string, string>{
      { "foo","bar" }};

      Dictionary<string, object> channelinfo = new Dictionary<string, object>
      {{ "context", context }};

      ResponseActivity.ChannelData = channelinfo;

【问题讨论】:

    标签: botframework bots


    【解决方案1】:

    您可以通过创建自定义商店中间件来修改用户发送的活动,将自定义渠道数据添加到传出活动。通道数据是一个通道特定的属性包,可用于发送非标准的带内数据。要实现通道特定的功能,您可以将元数据传递给活动对象的通道数据属性中的通道。查看 Backchannel Piggyback on Outgoing Activities 网络聊天示例,其中机器人上发送的所有“DIRECT_LINE/POST_ACTIVITY”都会在频道数据中添加一封电子邮件。

    根据您使用的频道,您可以使用频道数据属性来指示您的频道实现该功能。 This 文档提供了有关如何为不同渠道创建自定义消息的详细说明。

    blogpost 中详细解释了 NodeJS 和 C# 中通过 Facebook Messenger 发送消息的通道数据的简单示例。

    希望这会有所帮助。

    【讨论】:

    • 感谢您的回复。我探索了看起来适合我要求的中间件方法。但是如何使用自定义适配器?
    • 对于您的要求,我认为中间件会更合适,因为使用自定义适配器您将无法发送您想要的任何类型的数据,仍然需要使用 channelData 来跟随通道架构。
    • 您能简单介绍一下您所说的数据类型吗?
    • 在您的情况下,它是自定义上下文信息。如果您使用的是电子邮件渠道,那么它将包含电子邮件的正文、主题以及收件人或附件。我所说的数据类型具体指的是“消息中特定于每个通道的内部数据”
    猜你喜欢
    • 2017-02-16
    • 2016-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 2013-02-13
    • 1970-01-01
    • 2016-04-26
    • 2017-11-03
    相关资源
    最近更新 更多