对于我们需要通过简单键盘(非嵌入式)将数据传递给回调按钮的功能,如果那没关系吗?
例:
const mainMenuKeyboard = Markup.InlineKeyboard([
Markup.callbackButton('Add', 'addAction),
]).resize().extra();
现在,如果要捕获“ addAddress”操作,则可以执行以下操作:
bot.action('addAction',(ctx) => <WHATEVER>);
一切正常
但是,当我想在项目中使用简单的键盘(而不是嵌入式键盘)时,无法使用“ bot.action(” addAction“)”捕获此操作,而必须使用“ bot.hears(” Add“)”:
const mainMenuKeyboard = Markup.keyboard([
Markup.callbackButton('Add', 'addAction),
]).resize().extra();
不工作
bot.action('addAction',(ctx) => <WHATEVER>);
工作
bot.hears('Add',(ctx) => <WHATEVER>);
最佳答案
您不应在Markup.keyboard(InlineKeyboardButton)内使用Markup.callbackButton(在Bot API上为ReplyKeyboardMarkup)。
根据Telegram Bot API文档,Markup.keyboard(ReplyKeyboardMarkup)应该包含KeyboardButton的数组数组(不仅是数组BTW,也要解决此问题)。 Markup.callbackButton(API上的Inlinekeyboardbutton)应用于InlineKeyboard(不答复键盘)。
有关如何在telegraf上使用它们的更多示例,check this example out
关于javascript - Node Telegraf回调按钮,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61189728/