如何结束在bot框架中使用节点js的覆盖

我正在使用触发器动作和结束对话来结束我的聊天..但它closures了聊天的当前对话框…我想结束聊天logging或数据….

我正在尝试这个代码

bot.dialog('/end', function (session) { session.endConversation("End Conversation"); }).triggerAction({ matches: /^(exit)|(quit)/i }); 

你可以尝试使用

 session.clearDialogStack() 

要么

 session.reset(); session.endDialog(); 

在这里你可以find有关重置的信息,以及关于clearDialogStack的信息 。

您可以使用这个简单的中间件来清除userData / conversationData包:

 export interface IResetDataSettings { resetCommand: RegExp; } export class ResetMiddleware { public static data(settings: IResetDataSettings): IMiddlewareMap { return { botbuilder: (session, next) => { if (settings.resetCommand && session.message.text && settings.resetCommand.test(session.message.text)) { session.userData = {}; session.conversationData = {}; session.privateConversationData = {}; session.endConversation("Your conversation state was reset."); } else { next(); } } }; } } 

然后像这样设置它:

 this.bot.use(ResetMiddleware.data({ resetCommand: /^reset data$/i })); 

* / deleteprofile选项从来没有为我工作的原因。

您可以使用命令“/ deleteprofile”删除用户/私人对话机器人数据包状态并重置您的机器人。 请注意,有些通道本身会解释斜杠命令,所以可能需要在前面发送一个空格(“/ deleteprofile”)

从这里: https : //docs.botframework.com/en-us/technical-faq#my-bot-is-stuck–how-can-i-reset-the-conversation

 delete session.userData; 

这对我有效。