0

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

  1. CardAction 翻译成 Telegram 频道上的内联键盘。这工作正常,并且仍然可供用户在聊天区域中多次执行。用户使用该按钮采取行动后,如何从聊天区域中删除按钮?

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

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

4

1 回答 1

1

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

于 2016-07-15T17:14:59.983 回答