【问题标题】:How to implement trigger action in bot framework v4?如何在机器人框架 v4 中实现触发动作?
【发布时间】:2019-12-18 04:48:31
【问题描述】:

在 v3 中,我们提供了触发操作按钮。

在 v4 中,如何实现触发动作按钮。另外,我如何提供建议的 action 按钮。

简单来说,我想在 v4 中使用低于 v3 的代码功能。请提出建议。

bot.dialog('help', function (session, args, next) {
    session.endDialog("message");
}).triggerAction({ matches: /^help$/i, });

【问题讨论】:

标签: javascript node.js botframework bots chatbot


【解决方案1】:

您想要做的事情称为中断。无论堆栈上有什么对话框,您都希望机器人响应全局关键字。您可以关注this guide 以获取有关如何执行此操作的详细说明。该指南使用Core Bot 示例。

基本上,从示例中扩展 CancelAndHelpDialog 类的任何对话框类都将使用调用此 interrupt 函数的重写 onContinueDialog 函数:

async interrupt(innerDc) {
    if (innerDc.context.activity.text) {
        const text = innerDc.context.activity.text.toLowerCase();

        switch (text) {
        case 'help':
        case '?':
            const helpMessageText = 'Show help here';
            await innerDc.context.sendActivity(helpMessageText, helpMessageText, InputHints.ExpectingInput);
            return { status: DialogTurnStatus.waiting };
        case 'cancel':
        case 'quit':
            const cancelMessageText = 'Cancelling...';
            await innerDc.context.sendActivity(cancelMessageText, cancelMessageText, InputHints.IgnoringInput);
            return await innerDc.cancelAllDialogs();
        }
    }
}

该函数检查用户输入的是“帮助”还是“?”或“取消”或“退出”并做出相应的回应。如果您不想遵循示例,您仍然可以从可以访问对话上下文的任何位置调用该函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2020-05-06
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多