如何在MS Bot框架中保留对话数据

时间:2016-08-10 14:49:13

标签: save botframework

我正在使用Microsoft bot开发框架,使用其node.js sdk。 我一直在寻找一种方法来保存对话的所有消息。我将persistConversationData设置为true,并尝试使用session.conversationData访问conversationData。但是,它是空的。

1-是否有内置方法来访问对话中的所有消息?

2-如果persistConversationData不适用于此,请任何人解释一下它的用法。

非常感谢你。

1 个答案:

答案 0 :(得分:6)

默认情况下,Microsoft Bot Framework不会保留邮件。对于有状态操作,您可以通过以下方式使用Bot State API:

  • 设置userData。持久化数据将在不同对话中提供给同一用户。
  • 设置conversationData。持久化数据将可供同一对话中的所有用户使用。
  • 设置privateConversationData。在给定的对话中,持久数据将可供给定用户使用。
  • 设置dialogData以在瀑布的步骤之间存储临时信息。

根据文档,默认情况下禁用conversationData。如果您想使用它,则必须将persistConversationData设置为true

tl; dr 你必须自己照顾持久性。 E.g。

// ...

var bot = new builder.UniversalBot(connector, { persistConversationData: true });

bot.dialog('/', function (session) {
    let messages = session.conversationData || [];
    messages.push(session.message);
    session.conversationData = messages;
});