机器人框架移除卡行动

bot framework remove cardaction

我正在为我的一个聊天机器人使用 Bot Framework(版本 3.0,ASP.NET Bot Framework 模板),并使用 HeroCard 和 CardAction 来获取用户的反馈。我有以下问题:

  1. CardAction 在 Telegram 频道上转换为内联键盘。这很好用,并且用户可以在聊天区域多次使用。用户使用该按钮执行操作后,如何从聊天区域中删除按钮?

  2. 我可以将 CardAction 翻译成回复键盘 (reply_markup) 而不是内联标记吗?

  3. CardAction 在 Telegram 中运行良好,但在 Skype 中无法运行。 Skype 将它们显示为外部媒体。

Bot Framework 不直接支持 Telegram 的回复键盘功能,但您仍然可以通过消息的 channelData 字段发送它。 ChannelData 用于发送未直接出现在 Bot Framework 中的特定于通道的消息。在BotBuilder/NodeJS中,这个字段是使用message.sourceEvent方法设置的:

示例(未经测试):

var msg = new builder.Message(session);
msg.sourceEvent({
    telegram: {
        method: "sendMessage",
        parameters: {
            text: "This is a reply keyboard",
            parse_mode: "Markdown",
            reply_markup: JSON.stringify({
                "keyboard": [
                    [{ text: "1" }, { text: "2" }, { text: "3" }],
                    [{ text: "4" }, { text: "5" }, { text: "6" }],
                    [{ text: "7" }, { text: "8" }, { text: "9" }],
                    [{ text: "*" }, { text: "0" }, { text: "#" }]
                ]
            })
        }
    }
});
session.send(msg);

channelData 字段文档:https://docs.botframework.com/en-us/csharp/builder/sdkreference/channels.html