Как написать Telegram-бота на Node.js (Telegraf.js)
Боты в Telegram — это программы, которые могут автоматически отвечать на сообщения, выполнять команды пользователей и отправлять уведомления, упрощая взаимодействие с сервисами и людьми. В этой статье мы разберемся, как создать простого бота с использованием Node.js и библиотеки Telegraf.js, даже если у вас нет большого опыта в программировании.
Установка Telegraf.js
Сначала убедитесь, что у вас установлен Node.js. Затем создайте папку для проекта и инициализируйте его:
mkdir telegram-bot && cd telegram-bot
npm init -y
Теперь установим Telegraf, библиотеку для работы с Telegram-ботами:
npm install telegraf
Получение токена бота
Чтобы создать бота, откройте Telegram и найдите @BotFather. Отправьте ему команду /newbot
и следуйте инструкциям. В конце BotFather выдаст вам токен — сохраните его, он понадобится для подключения бота к Telegram.
Написание кода для бота
Создайте файл bot.js
и добавьте туда следующий код:
const { Telegraf } = require('telegraf');
const bot = new Telegraf('YOUR_BOT_TOKEN');
bot.start((ctx) => ctx.reply('Привет! Я ваш Telegram-бот. Напишите что-нибудь!'));
bot.help((ctx) => ctx.reply('Я реагирую на команды /start и /help, а также на любые сообщения.'));
bot.on('text', (ctx) => ctx.reply(`Вы написали: ${ctx.message.text}`));
bot.launch();
console.log('Бот запущен!');
Замените 'YOUR_BOT_TOKEN'
на свой токен из BotFather.
Запуск бота
Теперь можно запустить бота:
node bot.js
Если всё сделано правильно, бот будет реагировать на команды /start
, /help
и любые текстовые сообщения.
Добавление кнопок
Давайте сделаем бота более интерактивным и добавим клавиатуру с кнопками:
bot.command('menu', (ctx) => {
ctx.reply('Выберите действие:', {
reply_markup: {
keyboard: [
[{ text: 'Погода' }, { text: 'Новости' }],
[{ text: 'Помощь' }]
],
resize_keyboard: true
}
});
});
bot.hears('Погода', (ctx) => ctx.reply('Сегодня солнечно! ☀️'));
bot.hears('Новости', (ctx) => ctx.reply('Вот последние новости...'));
bot.hears('Помощь', (ctx) => ctx.reply('Напишите /help, чтобы узнать больше.'));
Теперь, когда пользователь введет /menu
, появится клавиатура с кнопками.
Запуск бота на сервере
Если вы хотите, чтобы бот работал круглосуточно, запустите его на сервере с помощью pm2
:
npm install -g pm2
pm2 start bot.js --name telegram-bot
pm2 save
pm2 startup
Итоги
Теперь у вас есть Telegram-бот на Node.js, который может отвечать на команды, обрабатывать текст и работать с кнопками. Дальше вы можете добавить в него интеграцию с API, поддержку картинок или даже базу данных!
Настроить мониторинг за 30 секунд
Надежные оповещения о даунтаймах. Без ложных срабатываний