Telegraf предпочтительнее, так как он более "интересный" и "читабельный". Ключевые моменты использования сцены, клавиатур, а также работы с сессиями в Telegraf. В Telegraf интегрированы удобные инструменты для создания сцены и управления состоянием бота. Это упрощает разработку ботов за счет более структурированного подхода к обработке событий и управления шагами сцены (DEV Community) (DEV Community)

Основные аргументы в пользу Telegraf:

  • Простота настройки и работы с клавиатурами и сценами.
  • Удобное управление сессиями.
  • Читабельный и организованный код.

Таким образом, Telegraf лучше подходит для тех, кто ценит структурированность и удобство использования.

Пример код с Telegraf


const { Telegraf } = require('telegraf');  
// Создайте экземпляр бота с вашим токеном 
const bot = new Telegraf('YOUR_TELEGRAM_BOT_TOKEN');  
// Обработчик команды /start 
bot.start((ctx) => ctx.reply('Добро пожаловать!'));  
// Обработчик текстовых сообщений 
bot.on('text', (ctx) => {    
        ctx.reply(`Вы написали: ${ctx.message.text}`); 
});  
// Запуск бота 
bot.launch();  
// Обработка ошибок 
process.once('SIGINT', () => bot.stop('SIGINT')); 
process.once('SIGTERM', () => bot.stop('SIGTERM'));   

Пример кода с Node-Telegram-Bot-API


const TelegramBot = require('node-telegram-bot-api');  
// Создайте экземпляр бота с вашим токеном и включите опрос 
const bot = new TelegramBot('YOUR_TELEGRAM_BOT_TOKEN', { polling: true });  
// Обработчик команды /start 
bot.onText(/\/start/, (msg) => {    
        const chatId = msg.chat.id;    
        bot.sendMessage(chatId, 'Добро пожаловать!'); });  
// Обработчик текстовых сообщений 
bot.on('message', (msg) => {    
        const chatId = msg.chat.id;    
        bot.sendMessage(chatId, `Вы написали: ${msg.text}`); 
});   

Установка

Убедитесь, что у вас установлены соответствующие пакеты:


npm install telegraf 
npm install node-telegram-bot-api   

Эти примеры создают простые боты, которые отвечают на команды и текстовые сообщения. Не забудьте заменить YOUR_TELEGRAM_BOT_TOKEN на ваш токен бота.