node-telegram-bot-api: JavaScript библиотека для ботов

Средний уровень ⏱ 7 мин чтения

Полное руководство по node-telegram-bot-api - самой популярной Node.js библиотеке для создания Telegram ботов. Изучите async/await, webhook и современный JavaScript.

🚀 Готовые боты на BotMix

Запустите готового бота из нашего каталога за 60 секунд! Нужна индивидуальная разработка? Обращайтесь в нашу студию разработки.

О библиотеке node-telegram-bot-api

node-telegram-bot-api — самая популярная Node.js библиотека для Telegram Bot API, разработанная yagop. Поддерживает как polling, так и webhook режимы работы.

8k+
GitHub звезд
Node.js 12+
Требования
2015
Год создания
Promise
API стиль

JavaScript в мире Telegram ботов

JavaScript занимает 3-е место по популярности для Telegram ботов. Популярность обусловлена:

  • Быстрой разработкой и прототипированием
  • Огромной экосистемой NPM пакетов
  • Отличной поддержкой async/await
  • Простой интеграцией с веб-сервисами
  • Большим сообществом разработчиков

Плюсы и минусы

✅ Преимущества

  • Простой и понятный API
  • Promise-based архитектура
  • Поддержка webhook и polling
  • Активное сообщество
  • Богатая экосистема NPM
  • Отличная производительность
  • TypeScript поддержка

❌ Недостатки

  • Нет встроенной системы состояний
  • Базовый набор функций
  • Требует дополнительных библиотек
  • Меньше специализированных функций

Быстрый старт

1
Установка
npm install node-telegram-bot-api
2
Первый бот
const TelegramBot = require('node-telegram-bot-api');

const token = 'YOUR_BOT_TOKEN';
const bot = new TelegramBot(token, {polling: true});

bot.onText(/\/start/, (msg) => {
    const chatId = msg.chat.id;
    bot.sendMessage(chatId, 'Привет! Я JavaScript бот! 🤖');
});

bot.on('message', (msg) => {
    const chatId = msg.chat.id;
    
    if (msg.text !== '/start') {
        bot.sendMessage(chatId, `Вы написали: ${msg.text}`);
    }
});

console.log('Бот запущен!');

Основные возможности

⌨️ Inline клавиатуры

bot.onText(/\/menu/, (msg) => {
    const chatId = msg.chat.id;
    
    const options = {
        reply_markup: {
            inline_keyboard: [
                [
                    { text: '📊 Статистика', callback_data: 'stats' },
                    { text: '⚙️ Настройки', callback_data: 'settings' }
                ],
                [
                    { text: '🔗 Сайт', url: 'https://botmix.pro' }
                ]
            ]
        }
    };
    
    bot.sendMessage(chatId, 'Выберите действие:', options);
});

bot.on('callback_query', (callbackQuery) => {
    const message = callbackQuery.message;
    const data = callbackQuery.data;
    
    if (data === 'stats') {
        bot.answerCallbackQuery(callbackQuery.id, {
            text: 'Показываю статистику...'
        });
        bot.sendMessage(message.chat.id, '📊 Ваша статистика...');
    }
});

📁 Работа с файлами

// Отправка фото
bot.onText(/\/photo/, (msg) => {
    const chatId = msg.chat.id;
    const photo = 'path/to/photo.jpg';
    
    bot.sendPhoto(chatId, photo, {
        caption: 'Фото от JavaScript бота!'
    });
});

// Обработка полученных файлов
bot.on('photo', (msg) => {
    const chatId = msg.chat.id;
    const photo = msg.photo[msg.photo.length - 1];
    
    bot.getFileLink(photo.file_id).then((link) => {
        console.log('Ссылка на фото:', link);
        bot.sendMessage(chatId, `Получил фото: ${link}`);
    });
});

// Отправка документа
bot.onText(/\/document/, (msg) => {
    const chatId = msg.chat.id;
    
    bot.sendDocument(chatId, 'path/to/document.pdf', {
        caption: 'Важный документ'
    });
});

🌐 Webhook настройка

const express = require('express');
const app = express();

// Настройка webhook
const url = 'https://yourdomain.com';
const port = process.env.PORT || 8443;

bot.setWebHook(`${url}/bot${token}`);

app.use(express.json());

app.post(`/bot${token}`, (req, res) => {
    bot.processUpdate(req.body);
    res.sendStatus(200);
});

app.listen(port, () => {
    console.log(`Server running on port ${port}`);
});

Для каких проектов подходит?

🌐 Веб-интеграция

API интеграции, веб-сервисы, REST API

⚡ Быстрое прототипирование

MVP, демо-версии, тестирование идей

📊 Аналитика и мониторинг

Дашборды, отчеты, системы уведомлений

🛒 E-commerce боты

Каталоги, заказы, платежные системы

Популярные дополнения

📦 telegraf

Современная альтернатива с middleware

🗃️ lowdb

Простая JSON база данных

⏰ node-cron

Планировщик задач

🌐 express

Веб-сервер для webhook

🏗️ Node.js хостинг

Разместите JavaScript бота на профессиональном хостинге с поддержкой Node.js и автомасштабированием. Узнайте больше о наших услугах хостинга.

Заключение

node-telegram-bot-api - отличный выбор для JavaScript разработчиков. Простой API, богатая экосистема и отличная производительность делают его идеальным для большинства проектов.

👍 Выбирайте node-telegram-bot-api если:

  • Знаете JavaScript/Node.js
  • Нужна интеграция с веб-сервисами
  • Планируете быстрое прототипирование
  • Хотите использовать NPM экосистему

🚀 Начните разработку

Готовые боты

Каталог готовых решений - установка за минуту (скидка 15% по коду GUIDE)

Разработка на заказ

Регистрация - Node.js боты любой сложности