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

时间:2017-04-28 10:41:36

标签: node.js bots botframework

我正在使用触发操作和结束对话来结束我的聊天..但它会关闭聊天的当前对话框... 我希望结束聊天记录或数据....

我正在尝试此代码..

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

3 个答案:

答案 0 :(得分:4)

您可以尝试使用

session.clearDialogStack()

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

在这里,您可以找到有关reset的信息,此处有关于clearDialogStack的信息。

答案 1 :(得分:1)

您可以使用这个简单的中间件来清除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 }));

答案 2 :(得分:0)

  

您可以使用命令“/ deleteprofile”删除   User / PrivateConversation bot数据包状态并重置您的机器人。注意,   一些通道本身解释斜杠命令,所以它可能是   必须发送前面有空格的命令(“   / deleteprofile”)

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