Как написать Телеграм-бота на JavaScript
Сегодня будем делать бота — это отличное (и быстрое) занятие, которое развивает уставший мозг и даёт возможность отправить друзьям ссылочку со словами «Смотри, это моё».
Для работы понадобятся
- Редактор кода, чтобы писать код. Если не знаете, какой выбрать — мы уже рассказывали. Если не умеете писать код, то вот инструкция, как его написать и запустить.
- Node.js любой версии, выше 0.12. Нужно, чтобы библиотека для ботов заработала. Как установить Node.js.
- Консоль. Или встроенный в систему вариант, или какой-нибудь другой.
- VPN. Возможно, но не факт, потому что Телеграм работает не везде.
Шаг 1. Регистрируем бота
Находим в поиске Телеграма бота @botFather — это главный инструмент для создания ботов. Набираем в нём /newbot .
Придумываем название и имя боту. Название — то, как он будет подписан в списке контактов. Имя — строка, по которой его можно будет найти. Обратите внимание, что имя должно оканчиваться на bot . В ответ мы получим токен — длинную последовательность символов, которая пригодится нам в будущем. Мы назвали бота echoKeksBot , но вам придётся придумать другое название, потому что это уже занято. Извините.

Шаг 2. Создаём проект
Создаем папку в любом месте и открываем её в консоли. Там пишем npm init -y — эта команда создаст файл package.json , который выглядит примерно так:

Теперь установим node-telegram-bot-api — это библиотека для создания телеграм-ботов на Node.js. Введём команду:
npm install --save --save-exact node-telegram-bot-api
Создадим пустой файл index.js и напишем там самого простого бота, который будет отвечать на любое сообщение:
bot.on('message', (msg) => < const chatId = msg.chat.id; bot.sendMessage(chatId, 'Привет, Друг!'); >);
Шаг 3. Запускаем бота
Тут всё просто, в консоли пишем node index.js , заходим к нашему боту в телеграм и начинаем с ним общаться. Не закрывайте консоль — бот работает только на вашем компьютере, и без консоли он не станет отвечать.

Как видим, бот успешно отвечает. Но бот-повторяха — не интересно, усложним задачу. Пусть бот присылает нам картинку.
Шаг 4. Отсылаем картинку
Добавим картинку с Кексом в папку с проектом. Для отправки изображения используем метод .sendPhoto() — передадим в него id чата и путь до картинки. Получится такой код:
bot.on('message', (msg) => < const chatId = msg.chat.id; bot.sendPhoto(chatId, 'keks.png'); >);
Запускаем бота, проверяем, работает:

Шаг 5. Добавим клавиатуру. И пёсика
Добавим фотографию милого пёсика в корень проекта. Теперь там две картинки.
Создадим конфигурацию для клавиатуры в боте, пусть у нас будет 3 кнопки: «Хочу кота», «Хочу пёсика» и «Пойти учиться».

// Конфиг клавиатуры const keyboard = [ [ < text: 'Хочу кота', // текст на кнопке callback_data: 'moreKeks' // данные для обработчика событий >], [ < text: 'Хочу песика', callback_data: 'morePes' >], [ < text: 'Хочу проходить курсы', url: 'https://htmlacademy.ru/courses' //внешняя ссылка >] ];
На нажатия первых двух кнопок мы ответим соответствующим сообщением в Телеграме, а последняя уведёт на внешний ресурс.
Чтобы отличить первые 2 кнопки, воспользуемся полем callback_data , где будем передавать тип кнопки. Для обработки нажатий добавим слушателя на событие callback_query , и в зависимости от значения query.data отправим нужную картинку к пользователю.
// Обработчик нажатий на клавиатуру bot.on('callback_query', (query) => < const chatId = query.message.chat.id; let img = ''; if (query.data === 'moreKeks') < // если кот img = 'keks.png'; >if (query.data === 'morePes') < // если пёс img = 'pes.png'; >if (img) < bot.sendPhoto(chatId, img, < // прикрутим клаву reply_markup: < inline_keyboard: keyboard >>); > else < bot.sendMessage(chatId, 'Непонятно, давай попробуем ещё раз?', < // прикрутим клаву reply_markup: < inline_keyboard: keyboard >>); > >);
Не забудем про возможные ошибки и предложим пользователю попробовать снова, если он ввёл что-то не то. Перезапустим бота и проверим — всё работает. Главное — не закрывать консоль, иначе бот перестанет отвечать.
Полный файл с кодом: index.js.
В следующей части как раз разберёмся, как загрузить и запустить бота на сервере, чтобы он работал, даже если ваш компьютер выключен.
«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.
Простой Telegram бот для поиска по сайту на WordPress без знаний программирования
Сразу на входе скажу — это инструкция не для разработчиков, это инструкция для тех, кто вообще ничего не понимает в программировании, но очень хочет сделать простого бота, который бы умел искать по сайту. Идея такой статьи появилась после того, как я сам долго гуглил и не мог найти, как вообще такое делается, а после, немного разобравшись понял, что тут все просто. Поэтому это не открытие Америки, а простая инструкция для вас, если вы не хотите разбираться, платить деньги, а просто быстро запустить простого бота. Инструкция от начала и до конца — как сделать и запустить.
Что получим?
Что мы получим? Получим бота ( пример бота), который умеет искать по сайту и присылает пользователю ссылку на статью или набор ссылок на статьи. В названии я написал WordPress, но по идее любой сайт. который поддерживает RestApi. Показывать буду на примере своего сайта, для которого это делал. Итак есть контентный сайт gdesnimali.ru, сайт на wordpress и каждый пост там — это описание локаций того или иного фильма. Искать мы будем только по названию фильма, а оно указано в заголовке, поэтому интересует поиск только по заголовку. Мы ожидаем, что в бота человек напишет название фильма, а в ответ хочет получить все что найдет поисковик на сайте.
Создание бота в телеграм
Идем по ссылке t.me/BotFather — это чат бот для создания ботов. Там пишем /newbot, он попросит выбрать нас название для своего бота, обязательное требование, чтобы название заканчивалось на _bot, поэтому у меня gdesnimali_bot
Если название подошло, то нам покажется сообщение где будет токен, он то нам и нужен. Выглядит это примерно так:
Use this token to access the HTTP API:
5133698220:AAHqiEwVzn0lH2nrwqntlHNmYeQecGL0x
Знайте, любой кто получит этот токен сможет управлять ботом, поэтому никому его не показывайте.
Но не спешите уходить из бота, он знает еще две нужные нам команды:
/setuserpic — отправляйте команду и следом картинуку, которая будет аватаркой бота.
/setdescription — отправляйте команду и следом описание вашего бота, которое будет высвечиваться пользователю до нажатия кнопки старт. Тут важно емко и интересно описать, что бот делает, чтобы пользователь не удалил его сразу.
Адаптируем код
Итак, я не программист, поэтому кто-то может уйти в депрессию от моего кода, но главное — он работает. Код просто копируем и правим пару мест
import telebot import requests from telebot import types bot = telebot.TeleBot('ВОТ ТУТ НУЖНО ВСТАВИТЬ КОД ОТ ТЕЛЕГРАМ') bot.remove_webhook() @bot.message_handler(commands=['start']) def start_message(message): user_id = message.from_user.id pressStartButton = 'Кнопка старт' markup = types.ReplyKeyboardMarkup(resize_keyboard=True) filmSearchButton = types.KeyboardButton('ВОТ ТУТ КНОПКА ДЛЯ СТАРТА ПОИСКА') markup.add (filmSearchButton) bot.send_message(message.chat.id, "ВОТ ТУТ ПРИВЕТСТВЕННОЕ СООБЩЕНИЕ БОТА ПОСЛЕ КНОПКИ СТАРТ", parse_mode='html', reply_markup=markup) @bot.message_handler(content_types=['text']) def lalala (message): if message.chat.type == 'private': if message.text == 'ВОТ ТУТ КНОПКА ДЛЯ СТАРТА ПОИСКА': bot.send_message(message.chat.id, 'ВОТ ТУТ ОПИСАНИЕ ЧТО МОЖНО ИСКАТЬ') else: user_id = message.from_user.id searchQuery = message.text url = f"ВОТ ТУТ АДРЕС ВАШЕГО САЙТА wp-json/wp/v2/posts?search=" responce = requests.get(url) if not responce.json(): bot.send_message(message.chat.id, 'Я ничего не нашел по вашему запросу') for SearchResult in responce.json(): title = SearchResult['title'] completeMessage = f" " bot.send_message(message.chat.id, completeMessage) bot.polling(none_stop=True)
Что нужно в нем поменять?
Где надпись «ВОТ ТУТ НУЖНО ВСТАВИТЬ КОД ОТ ТЕЛЕГРАМ» — нужно вставить код который вы получили в телеграм при создании бота.
Где надпись «ВОТ ТУТ АДРЕС ВАШЕГО САЙТА» — должно получиться вот так, только вначале ваш сайт — f»https://gdesnimali.ru/wp-json/wp/v2/posts?search=»
Где надпись «ВОТ ТУТ КНОПКА ДЛЯ СТАРТА ПОИСКА» (Обратите внимание она в коде два раза, оба раза должно быть одинаково до символа» — нужно написать просто на русском запрос на поиск, у меня написано «Искать фильм» — это кнопка которая будет снизу в меню, при ее нажатии он выведет сообщение «ВОТ ТУТ ОПИСАНИЕ, ЧТО МОЖНО ИСКАТЬ» — у меня это «Введите название фильма».
Готово, теперь вам нужно просто сохранить этот код в файле питон, т.е. он должен заканчиваться на .py, например bot.py проще всего код вставить в обычный блокнот, там поправить и потом нажать «сохранить как» и сразу опубликовать с нужным форматом .py
Запуск на сервере
Бот должен где-то работать и он не может это делать на серверах телеграм.
Для своего бота я использую VPS сервер своего сайта и это было отдельным приключением все там настроить и установить. Вам я предлагаю использовать, как минимум на первое время хостинг pythoneverywhere. Он бесплатный для одного проекта. И есть отличная инструкция как запустить там бота. Я не буду ее переписывать, просто используйте код полуенный выше вместо кода в инструкции (Например эта: ссылка на инструкцию).
Как создать чат-бота в Telegram

Эта статья будет полезна тем, кто хочет создать свой бот в Телеграме самостоятельно без навыков разработки, знания языков программирования и сложных команд. Для запуска понадобится только продуманный сценарий работы и настройки, с которыми справится каждый.
Зачем нужен бот в Telegram
С его помощью можно автоматизировать рутинные бизнес-процессы. Можно даже заменить телеграм-каналом полноценный сайт. Чат-бот полезен, когда нужен удобный источник справочной информации или полуавтоматическая линия поддержки пользователей.
Простые боты в Телеграме работают с помощью команд: выдают в чат несколько готовых пунктов и продолжают диалог в зависимости от выбора пользователя. Но этим возможности не ограничиваются. Например, SaluteBot умеет анализировать текст в сообщении, что позволяет вести настоящую беседу.
Создайте своего чат-бота в Telegram
Простая настройка чат-бота в личном кабинете Цифровой витрины
Попробовать
Как создать telegram-бот
Чтобы сделать чат-бот без навыков программирования, воспользуйтесь визуальным конструктором в личном кабинете Цифровой витрины. Это бесплатно и несложно: в интерфейсе представлены блоки с сообщениями и кнопками, из которых вы составляете нужный сценарий.
Но, чтобы бот заработал в Телеграме, нужно настроить интеграцию нескольких систем: личный кабинет Цифровой витрины, Telegram и Jivo.
Поэтому пошаговая инструкция выглядит так:
- Создание бота в Telegram.
- Регистрация на платформе Jivo.
- Интеграция Jivo с Telegram.
- Создание бота в личном кабинете Цифровой витрины.
- Разработка сценария бота в конструкторе.
- Тестирование и отладка бота.
Разберём каждый этап подробно.
Создание бота в Телеграме
Создать самостоятельно чат-бот в Telegram можно бесплатно за несколько шагов:
- Перейдите в диалог с инструментом для разработки чатов — https://telegram.me/BotFather.
- Нажмите кнопку «Start» или введите в диалоге команду /start.
- Далее введите команду /newbot, чтобы сделать новый бот.
- Укажите название — как будет отображаться чат в списке контактов.
- Последнее — системное имя: это то, что будет ником после знака @.
Название может быть любым: нестрашно, если оно будет дублировать уже существующие. Но системное имя обязательно должно быть уникальным. Если имя уже занято, вы увидите подсказку: «Sorry, this username is already taken. Please try something different».
После успешного создания вы получите токен. Сохраните его, он понадобится для дальнейшей интеграции. Если вы закрыли окно и нужно снова найти токен, напишите в диалоге команду /token.

Регистрация в Jivo
Чтобы разработать чат в Телеграме на платформе личного кабинета Цифровой витрины, понадобится учётная запись в сервисе Jivo. При регистрации укажите email и задайте пароль. В поле «Адрес сайта» можно ввести любые данные.
Интеграция Jivo с Telegram
Авторизуйтесь на платформе Jivo, в боковом меню откройте раздел «Управление», блок «Каналы связи».

В списке сервисов найдите Telegram и нажмите кнопку «Добавить», далее — «Подключить Telegram». В открывшемся окне введите токен, который вы получили при создании бота.

Если токен указан верно, появится всплывающее сообщение о том, что бот успешно подключён. В меню «Уведомления» настройте, куда вы хотите получать все диалоги и на какой email отправить сообщение, если нет свободных операторов.
Создание бота в личном кабинете Цифровой витрины
В предыдущих шагах мы настроили площадку для диалогов и сервис Jivo для интеграции чата и конструктора. Далее предстоит разработка сценария, то есть набора команд и логики, по которой бот будет общаться с пользователями.
Сценарий мы будем создавать в личном кабинете Цифровой витрины: пройдите бесплатную регистрацию и войдите в аккаунт.
Далее следуйте инструкции:
- Нажмите «Создать проект» на главном экране.
- Если хотите заказать разработку бота, в списке инструментов выберите «SaluteBot Под ключ» и отправьте онлайн-заявку.
- Если будете создавать бот сами, то в списке инструментов выберите «SaluteBot Конструктор». Дальше говорим именно о самостоятельном конструировании SaluteBot.
- Выберите готовый шаблон или «Новый проект».
- Придумайте название и нажмите кнопку «Создать проект».
- Введите название бота.
- Выберите язык.
- Выберите тип сценария.
- Нажмите кнопку «Добавить аккаунт Jivo» и укажите данные для авторизации в сервисе Jivo.
- Перейдите в личный кабинет Jivo, чтобы связать его с личным кабинетом Цифровой витрины.
В меню выбора типа сценария доступно несколько вариантов:

- Готовый сценарий — включает базовую сборку экранов и команд с ответами на частые запросы. Можете использовать сценарий без изменений или подстроить его под логику вашего бизнеса: добавить и убрать любые блоки.
- Graph — это разработка сценария в конструкторе.
- Code — написание сценария с помощью кода, подходит для разработчиков. Важно помнить о том, что в Code можно собрать чат-бот только для сайта, не для мессенджеров, поэтому в данной статье мы этот тип не рассматриваем.
Разберём тип сценария Graph: с его помощью вы сможете сами составить схему работы чат-бота в конструкторе.
Разработка сценария
Перейти к редактированию сценария можно со страницы базовых настроек, которую мы рассмотрели на предыдущем этапе. В блоке «Сценарий бота» нажмите кнопку со всплывающей подсказкой «Перейти к проекту».


Прежде чем начать разработку карты, рекомендуем составить перечень запросов, на которые вы хотите отвечать с помощью бота. Запишите, какие сообщения должен отправлять бот на вопросы пользователей, какие варианты развития беседы возможны. Так будет проще построить диалоги и логику работы бота.
Сценарий состоит из блоков со следующими возможностями:
- Написание текстового ответа. Это самый простой блок, когда пользователю должно прийти в ответ сообщение с готовым текстом. Ответы бота можно разнообразить: если указать в блоке несколько фраз, то ответ будет выбираться случайным образом.
- Запрос данных. Пользователь должен отправить в сообщении данные определённого формата. Бот определяет, является ли значение телефоном, электронной почтой или числом.
- Проверка условия. В сценарий можно добавить разветвление, чтобы строить диалог исходя из ответа клиента.
- Перевод диалога на сотрудника. Когда бот собрал все нужные сведения или затрудняется с ответом, он может перевести диалог на оператора.
- Вызов произвольного кода. Данные из чата можно сохранять и обрабатывать в сторонних системах. Пример: клиент указывает в сообщении номер заказа, который отправляется в CRM-систему, а затем в телеграм-диалог возвращаются детали по этому заказу. Другой пример — обновление персональных данных заказчика: из чата они передаются в CRM-систему.
Если вы хотите быстро начать работу с ботом, на экране «Создание проекта SaluteBot Конструктор» выберите готовый отраслевой шаблон. Например, для e-commerce подходит шаблон «Приём и оформление онлайн-заказов».

Шаблон включает блоки про выбор товара, оформление покупки прямо в телеграм-канале, уточнение статуса заказа, перевод на оператора:

Сценарий можно адаптировать под свой бизнес: отредактировать сообщения и кнопки, добавить или удалить экраны и блоки.
Проверка работоспособности
После настройки сценария нажмите кнопки «Сохранить» и «Собрать» в нижнем правом углу.

Дождитесь сообщения об успешной сборке, а затем проверьте, заработал ли ваш телеграм-бот. Для этого перейдите в диалог, нажмите кнопку «Start» или введите команду /start. Напишите какое-нибудь сообщение и убедитесь, что бот отвечает по той схеме, которую вы составили. Если получаете некорректные ответы или забыли добавить какую-то пользовательскую ситуацию, скорректируйте сценарий в конструкторе.
Телеграм-боты для бизнеса
Посмотрим, зачем нужны боты интернет-магазинам, инфобизнесу, рекламным агентствам и представителям других сфер.
Инфобизнес
Чат-бот может взять на себя все важные этапы работы с пользователем, а именно:
- помощь в создании профиля;
- рекламу и описание продуктов;
- отправку бесплатных «прогревающих» материалов;
- сопровождение клиента до оформления заказа.
Event-индустрия
В telegram-канал можно перенести рутинные задачи:
- помощь в бронировании мест на мероприятие;
- предоставление информации об адресе, спикерах;
- показ актуального расписания мероприятия;
- сбор обратной связи.
Размещаем бота для Telegram: от выбора хостинга до запуска

Чат-боты для Telegram — простой, изящный и легковесный способ вывести общение с клиентами на новый уровень. Виртуальный собеседник может заниматься рассылкой по фильтрам, предлагать клиенту интересные для него товары и услуги, сообщать последние новости или забавно реагировать на определенные реплики человека — их функционал ограничивается лишь фантазией разработчика. Но чтобы чат-бот работал корректно и мог реализовать свой потенциал, после разработки нужно подобрать подходящий хостинг для него. Об этом я и расскажу в статье, а также о том, как настроить сервер и разместить чат-бота для Telegram.
Выбираем хостинг для телеграм-бота
Для начала быстро разберемся с юридической составляющей. В России власти заблокировали лишь серверы и сам сайт Телеграма (UPD: уже разблокировали, поражение в этой войне было неминуемо). Использование мессенджера фактически не запрещено. Но не любой российский сервер будет исправно работать с ботами для этого мессенджера. Так что перед арендой лучше уточнить у техподдержки, подойдет ли их хостинг для телеграм-бота.
У хостинга для чат-бота должна быть поддержка нескольких языков программирования. Например, хостинг для телеграм-бота на Python должен поддерживать этот язык. Аналогично, написанный на NodeJS бот должен быть развернут на сервере, в который можно подгрузить язык NodeJS.
Если хостинг удовлетворяет этим требованиям, он подойдет для работы простого телеграм-бота, который выдает заготовленный ответ на слова-триггеры. Если же в работе ассистент использует машинное обучение, вам стоит обратить внимание на наличие графического ускорения — без него построение нейросети займет очень много времени. Впрочем, если ваш бот не будет обучаться во время общения с реальными собеседниками, то можно арендовать хостинг с графическим ускорением только на время разработки, а потом развернуть обученную нейросеть на обычном хостинге для Telegram-бота, без графики.
Обратите внимание на наличие круглосуточной технической поддержки. Если у хостинга таковой нет, лучше отказаться от него в пользу более клиентоориентированной компании, пусть даже у нее будут более высокие расценки. Оптимальным будет хостинг с бесплатной помощью в администрировании сервера.
Для развертывания бота для Telegram лучше всего подходит VDS/VPS. Он не требует наличия домена в обязательном порядке, и к нему можно будет обратиться по выделенному IP-адресу, что удобно при развертывании бота. К тому же такие серверы лучше поддерживают увеличение масштабов проекта, так что при увеличении потока посетителей вам не придется переходить на другой сервер — достаточно будет просто сменить тариф или его настройки.
Запустите свой VDS-сервер в Timeweb
От 169 рублей в месяц
Выбираем тариф
О тарифах хостингов для бота Telegram стоит поговорить отдельно. Есть целый класс бесплатных хостингов — сюда входит, например, Heroku. Они могут оказаться полезными при тестировании бота — расположите свой чат-бот на Heroku и проверьте работоспособность всех функций, прежде чем арендовать хостинг и выкладывать свое творение. Но учтите, что работоспособность на этом хостинге будет непостоянной — обычно чат-боты работают по 30 секунд, а затем отключаются на неопределенное время. Так что для полноценного развертывания лучше выбрать другой хостинг.
Выбор тарифа обычно обуславливается потоком клиентов, но не сложностью бота. Для развертывания как простенького, так и нейросетевого бота вам не потребуется много дискового пространства. Нет нужды и в больших вычислительных мощностях — большинству ботов более чем достаточно 512 МБ оперативной памяти. Поэтому можно выбирать самые недорогие тарифы.
Ключевое требование к хостингу — стабильность подключения, поэтому от shared-хостингов для телеграм-бота лучше сразу отказаться. А вот VPS/VDS сможет обеспечить надежное подключение. Предпочтительная ОС для сервера — Ubuntu, поскольку большинство модулей для языков программирования пишутся именно под нее. Тарифы на такие виртуальные серверы начинаются от 169 рублей в месяц.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Настраиваем сервер для Telegram-бота
Рассмотрим настройку сервера на примере размещения бота, написанного на Python, который будет автоматически присылать ответы на различные команды.
После аренды VPS нам нужно подключиться к нему по протоколу SSH через специальный клиент (например, Termius), используя данные из личного кабинета на хостинге для телеграм-бота. Вам потребуются Hostname, Login, Password, Port. Вводим их в поля нового подключения. Вот как это будет выглядеть в Termius:

Сохраняем подключение, возвращаемся на главный экран программы (здесь появляется наше новое подключение) и нажимаем на название сервера, которое мы вводили до этого:

Готово, мы попали в консоль сервера:

Отсюда мы сможем управлять сервером, подгружать нужные нам модули и библиотеки. Этим и займемся. Чтобы бот работал, серверу потребуется модуль языка Python. Мы рассматриваем бота, написанного на третьей версии языка, поэтому нам нужно установить python3. Для этого введем в консоль сервера следующие команды:
sudo apt —reinstall install python3 -y sudo apt —reinstall install python3-pip -y
Не забудем и про библиотеки. На «Питоне» ботов для Telegram обычно пишут с помощью библиотеки TelegramBotAPI. Для ее установки введем команду:
pip3 install pyTelegramBotAPI
Теперь нам нужно установить удобный менеджер процессов PM2 и язык программирования NodeJS с менеджером пакетов npm для его работы:
sudo apt install nodejs sudo apt install npm npm install pm2 -g