对于我们需要通过简单键盘(非嵌入式)将数据传递给回调按钮的功能,如果那没关系吗?

例:

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/

10-09 06:59