Telegraf Bot:是否可在单个action中追踪多个操作?
在Telegraf Bot的单个bot.action方法中追踪多个操作?
当然可以,Telegraf支持在单个bot.action方法中绑定多个操作,主要有两种实现方式:
- 传入标识符数组:把需要追踪的多个操作标识符放进数组,作为第一个参数传给
bot.action,数组里的任意操作被触发时,都会执行对应的回调逻辑。示例代码:
// 定义多个操作标识符 const LIKE_ACTION = 'like_post'; const SHARE_ACTION = 'share_post'; const SAVE_ACTION = 'save_post'; // 绑定多个操作到同一个回调 bot.action([LIKE_ACTION, SHARE_ACTION, SAVE_ACTION], (ctx) => { ctx.reply(`你触发了操作:${ctx.callbackQuery.data}`); });
- 使用正则表达式匹配:如果操作标识符有统一命名规则(比如前缀一致),可以用正则表达式批量匹配符合规则的操作,适合覆盖一类操作的场景。示例代码:
// 匹配所有以"post_"开头的操作 bot.action(/^post_/, (ctx) => { ctx.reply(`触发了匹配的操作:${ctx.callbackQuery.data}`); });
这两种方式都能让单个bot.action处理多个操作回调,你可以根据实际需求选择合适的方法。
内容的提问来源于stack exchange,提问作者user3336191
相关产品推荐
相关产品推荐

