建议的操作与 BotFramework 中的键盘



BotFramework 中的 SuggestedActions 和 Keyboard 类有什么区别?

目前正在尝试运行一个瀑布,我提出一个问题,用户选择一个选项,然后我跳到瀑布的下一步。我已经实现了具有建议操作功能的按钮

const msg = new builder.Message(session)
    .text("Which pair?  nExample: ETH BTC")
    .suggestedActions(
    builder.SuggestedActions.create(
        session, [
            builder.CardAction.postBack(session, "BTC USD", "BTC USD"),
            builder.CardAction.postBack(session, "ETH USD", "ETH USD"),
            builder.CardAction.postBack(session, "ETH BTC", "ETH BTC"),
            builder.CardAction.postBack(session, "XRP BTC", "XRP BTC"),
            builder.CardAction.postBack(session, "ZEC USD", "ZEC USD")
        ]
    ));
session.send(msg);

键盘类也可以这样做

const msg = new builder.Message(session)
    .text("Which pair?  nExample: ETH BTC")
    .addAttachment(new builder.Keyboard(session)
        .buttons([
            builder.CardAction.postBack(session, "BTC USD", "BTC USD"),
            builder.CardAction.postBack(session, "ETH USD", "ETH USD"),
            builder.CardAction.postBack(session, "ETH BTC", "ETH BTC"),
            builder.CardAction.postBack(session, "XRP BTC", "XRP BTC"),
            builder.CardAction.postBack(session, "ZEC USD", "ZEC USD")
        ]).toAttachment()
    )
session.send(msg);

如何在下一个瀑布步骤中捕获此按钮的响应,或者我应该改用提示。还有这个和键盘类有什么区别

SuggestedActionsKeyboard的替换(例如,在C#中,你会看到它们与键盘相关的东西标记为过时)。

若要捕获响应,可以将建议的操作作为提示选择的一部分发送,如功能建议的操作示例中所示。

bot.dialog('/', [
    function (session) {
        var msg = new builder.Message(session)
            .text("Hi! What is your favorite color?")
            .suggestedActions(
                builder.SuggestedActions.create(
                    session,[
                        builder.CardAction.imBack(session, "green", "green"),
                        builder.CardAction.imBack(session, "blue", "blue"),
                        builder.CardAction.imBack(session, "red", "red")
                    ]
                )
            );
        builder.Prompts.choice(session, msg, ["green", "blue", "red"]);
    },
    function(session, results) {
        session.send('I like ' +  results.response.entity + ' too!');
    }
]);

最新更新