Для того чтобы на node-telegram-bot-api дать команду боту при нажатии на кнопку, вы можете использовать Inline Keyboard Markup, которая позволяет генерировать кнопки и связывать их с определенными командами для вашего бота.
Прежде всего, установите модуль node-telegram-bot-api, используя npm:
npm install node-telegram-bot-api
Затем создайте файл с вашим кодом, например bot.js
, и импортируйте необходимые модули:
const TelegramBot = require('node-telegram-bot-api'); // создайте экземпляр бота с вашим токеном const bot = new TelegramBot('YOUR_BOT_TOKEN', { polling: true });
Далее, вы можете создать CallbackQueryHandler, который будет отвечать на нажатие на кнопку:
bot.on('callback_query', (query) => { const buttonCommand = query.data; // далее можно выполнить определенные действия, в зависимости от нажатой кнопки if (buttonCommand === 'start') { bot.sendMessage(query.message.chat.id, 'Вы нажали на кнопку "Начать"'); } else if (buttonCommand === 'stop') { bot.sendMessage(query.message.chat.id, 'Вы нажали на кнопку "Остановить"'); } });
Теперь создайте команду "/start" для вашего бота, которая будет выводить кнопки:
bot.onText(//start/, (msg, match) => { const chatId = msg.chat.id; const options = { reply_markup: { inline_keyboard: [ [ { text: 'Начать', callback_data: 'start' }, { text: 'Остановить', callback_data: 'stop' } ] ] } }; bot.sendMessage(chatId, 'Выберите команду:', options); });
В данном примере, при команде "/start" будет отображаться сообщение с двумя кнопками - "Начать" и "Остановить". Когда пользователь нажимает на одну из кнопок, срабатывает обработчик callback_query
, где вы можете определить, какую команду пользователь выбрал.
Обратите внимание, что это только основы и пример использования inline-клавиатуры в node-telegram-bot-api. В зависимости от ваших потребностей, вы можете разработать более сложную логику обработки нажатий на кнопки.