我正在使用Microsoft bot开发框架,使用其node.js sdk。 我一直在寻找一种方法来保存对话的所有消息。我将persistConversationData设置为true,并尝试使用session.conversationData访问conversationData。但是,它是空的。
1-是否有内置方法来访问对话中的所有消息?
2-如果persistConversationData不适用于此,请任何人解释一下它的用法。
非常感谢你。
答案 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;
});