单击按钮时如何显示消息?

时间:2019-04-17 10:06:02

标签: node.js telegram telegram-bot

我将TelegrafJS与NodeJS结合使用来创建Telegram机器人,实际上我发现TelegrafJS的文档确实很差而且很困难。

基本上,我想知道当用户按下按钮Add project时如何打印消息:

require('dotenv').config({ path: `.env` });
const Telegraf = require('telegraf');
const bot = new Telegraf(process.env.BOT_TOKEN);
const Markup = require('telegraf/markup');

bot.start((ctx) => ctx.replyWithMarkdown(
  `Welcome to my bot.`,
  Markup.inlineKeyboard([
    Markup.callbackButton('Add project...', 'Hello world')
  ]).extra()
));

bot.startPolling();

实际上,当我按Add project时,什么也没有发生。很抱歉这个愚蠢的问题,但是我是电报的新手,我有很多东西要学习

1 个答案:

答案 0 :(得分:1)

找到答案here,实际上,当您单击按钮电报发送query时,可以使用以下代码触发该事件:

bot.on('callback_query', (ctx) => {
  const action = ctx.update.callback_query.data;

  switch (action) {
    case 'Hello world':
      console.log("works!");
      break;
  }
});

.data包含您在按钮标题之后插入的标签,对于我来说是Hello world,但是您当然可以添加所有想要的内容。