我正在使用Bot Framework(版本3.0,ASP.NET Bot框架模板)为我的一个聊天机器人和使用HeroCard& CardAction获取用户的反馈。我有以下问题:
CardAction在电报频道上翻译成内联键盘。这工作正常,用户可以在聊天区域多次行动。一旦用户使用该按钮执行操作,如何从聊天区域中删除按钮?
我可以将CardAction转换为回复键盘(reply_markup)而不是内联标记吗?
CardAction与Telegram合作正常但在Skype中无效。 Skype正在将它们展示为外部媒体。
答案 0 :(得分:1)
Bot框架并不直接支持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