Телеграм-бот на сервере: загрузка, настройка и запуск
В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.
Шаг 1. Выбрать хостинг
Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):
- Google Cloud
- Oracle Cloud
- Amazon Web Services
Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.
Для примера мы закажем облачный VPS в REG.RU, вы можете воспользоваться любым VPS-хостингом. Он удобен для тестового проекта тем, что оплата почасовая. При выборе тарифа мы рекомендуем ориентироваться на несколько параметров:
- Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
- Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.
Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.
Шаг 2. Заказать хостинг
Переходим по ссылке: https://www.reg.ru/vps/cloud/, выбираем тариф, операционную систему и шаблон «Чистая ОС». Если у вас нет особых предпочтений, рекомендуем выбрать Ubuntu 18.04. Хотя у REG.RU есть шаблон c Node.js, для чистоты эксперимента всё необходимое ПО мы установим сами. Нажимаем кнопку «Заказать»:
После заказа и оплаты дождёмся настройки сервера:

В течение минуты статус сервера сменится с «В процессе» на «Активен». После этого отобразятся реквизиты доступа к серверу, они также будут отправлены на почту:

Шаг 3. Загрузить бота
Приступим к загрузке бота на сервер. Это можно сделать разными способами — с помощью FTP, SFTP, панели управления или, к примеру, rsync. Мы выберем самый быстрый вариант — SFTP, так как для него нужна только возможность подключения к серверу по SSH, которая обычно присутствует на всех VPS сразу после заказа.
Мы подключимся к серверу с помощью FileZilla. Укажем IP-адрес сервера, а также логин root и пароль в настройках клиента:

При первом подключении появится окно с предупреждением:

Ставим галочку «Всегда доверять этому хосту» и нажимаем «Ок».
Переходим на директорию выше ( . ), затем в каталог /opt и создаём папку с произвольным названием (мы выбрали keksbot ):

Переходим в созданную папку и загружаем файлы index.js и package.json :

Шаг 4. Зайти на сервер по SSH
Теперь нужно подключиться к серверу по SSH, чтобы установить Node.js и запустить бота. Для этого необходим SSH-клиент, например Putty, XShell, Bitvise SSH или любой другой. Функциональность программ может немного отличаться, но большой разницы в использовании между ними нет. Мы выбрали PuTTY как самый популярный и бесплатный SSH-клиент для Windows.
Открываем PuTTY, указываем IP-адрес сервера, порт 22 уже указан по умолчанию:

Нажимаем «Соединиться». Откроется окно с запросом логина:

Вводим root , после чего появится запрос пароля, при вводе которого символы не отображаются. Не стоит переживать, это особенность работы Linux — пароль нужно вводить вслепую. Чтобы не делать этого вручную, можно скопировать пароль и нажать правой кнопкой мыши в окне PuTTY. Убедитесь, что вы скопировали пароль без пробелов!
Шаг 5. Установить Node.js
Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.
Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:
Вывод будет примерно таким:
Нас интересует поле NAME , в котором указано название дистрибутива.
Помимо Node.js нам понадобится утилита Screen, чтобы бот продолжал работать, когда мы отключимся от сервера. Также нужен менеджер пакетов npm для установки зависимостей.
для Ubuntu/Debian
Подождём завершения установки и проверим, что Node.js работает:
Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.
Теперь перейдём в папку с файлом бота и установим зависимости:
Возможные ошибки при установке, и как их решить
При установке могут появиться ошибки вида:
Обычно это связано с тем, что у пользователя недостаточно прав для установки пакетов на сервере, либо предыдущий процесс установки завершён некорректно.
В первом случае необходимо убедиться, что вы подключились к серверу под именем суперпользователя root — при необходимости зайдите на сервер заново.
Во втором случае для решения проблемы нужно завершить процесс менеджера пакетов и удалить lock -файлы. Чтобы это сделать, запустите команды:
для Ubuntu/Debian
После этого попробуйте заново запустить установку.
Шаг 6. Запустить и проверить бота
Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:
Перейдём в каталог с файлом бота:
После этого можем запустить бота:
Заходим в Telegram, проверяем бота:

Отлично! Всё работает.
Теперь можно отключиться от сервера и закрыть окно PuTTY, бот продолжит работу.
Шаг 7. Обеспечить автоматический перезапуск бота
Из-за ошибок в коде бот может «упасть» в самый неожиданный момент. Чтобы этого не случилось, настроим автозапуск бота при старте сервера и его автоматический перезапуск при ошибках.
Это позволит боту стабильно работать даже в случае обнаружения багов. Вы сможете оперативно их исправить, а бот в это время продолжит отвечать на запросы.
Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.
Для начала отключим бота командой:
Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:
В нашем случае это будет файл /lib/systemd/system/keksbot.service . В файл поместим следующий код:
Текст в некоторых строках необходимо отредактировать относительно вашего проекта. Разберём строки, на которые нужно обратить внимание.
В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.
Команда для запуска бота.
Её следует поменять, если имя скрипта вашего бота отличается от index.js . В таком случае нужно будет указать следующие значения:
Папка со скриптом, который мы запускаем. В нашем случае это /opt/keksbot/ .
Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:
Теперь запустим бота командой:
Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:
Роботы в Телеграм — как найти и добавить
Телеграм имеет существенное отличие от ближайших конкурентов — Viber и WhatsApp. Оно заключается в огромном количестве самых разнообразных ботов, которые востребованы аудиторией. Ботов иногда называют «роботами». Разберемся, что такое роботы в Телеграм и как они работают.
Специально для жителей РФ: рекомендуем бота TeleBot, который раздает надежные, быстрые и бесплатные MTProxy для обхода блокировки Telegram.
Содержание:
- Что такое роботы в Телеграм ;
- Как найти и запустить робота: 2 способа ;
- Встроенные боты (роботы) в Телеграм .
Что такое роботы в Телеграм
Бот — это программный робот, который может делать самые разные вещи. Спектр применения таких роботов очень обширен: заказ билетов, банковские операции, курсы валют, новости, развлечения, онлайн игры, информация. Короче говоря, всё, на что способна фантазия разработчика.
Рекомендуем: КредоБот — удобный бот для подбора кредитов и займов в 2019 году с возможностью узнать бесплатно свой кредитный рейтинг.
Суть бота — выполнение различных действий в ответ на посылаемые пользователем команды.
Так как у Телеграм открытое API (интерфейс прикладного программирования), любой желающий может создать собственных роботов. Однако для этого все же потребуются навыки программирования.
Безопасны ли Telegram-боты?
Да, вы можете не волноваться, главное запомнить основной принцип: относиться к Телеграм-роботу так, как вы относитесь к пользователям, с которыми не знакомы. В общем, актуальны стандартные правила безопасности.
Это означает, что не стоит давать ботам личную информацию, пароли, банковские данные и т.д. По умолчанию они видят ваше публичное имя, а также фотографию аккаунта. И, конечно, те сообщения, что вы им отправляете.
И еще одна предосторожность, прежде чем мы перейдем к тому, как найти роботов: не открывайте .exe файлы, которые вам отправляет Telegram-бот, то есть программы.
Если же неприятность произошла и бот завладел вашими данными, то один из выходов — удалить свою страницу в Телеграм, чтобы пресечь дальнейшую кражу личной информации.
Телеграм-роботами очень просто пользоваться. Далее, на примере пары интересных ботов, мы расскажем и покажем последовательность действий.
Следует быть осторожным с предложениями взломать ботов, обычно это просто выманивание денег.
Как найти и запустить бота в Телеграм
Способ №1: зная юзейрнем
Роботов в мессенджере сотни тысяч, если не миллионы. Найти среди них что-то интересное непросто, но возможно. Посмотрим что нужно сделать, чтобы найти нужного робота в Телеграме.
Если вы знаете юзернейм бота (@имя_бота_bot), то всё очень просто. Нужно всего лишь ввести его в строку поиска мессенджера.

Чтобы найти робота в Телеграм, самый простой способ — вставить в поисковую строку его юзернейм. Если вы, конечно, его знаете
Вот Телеграм-робот для примера: @EasyStrongPasswordBot. Кстати, весьма полезный помощник. Он создаёт для вас сложные пароли и подбирает к ним мнемонические фразы для быстрого запоминания.
- Вставляем в строку поиска телеграм имя бота — @EasyStrongPasswordBot;
- Проверяем результаты поисковой выдачи. У нужного нам робота имя должно полностью совпадать с тем, что мы указали;
- Выбираем команду «/start». Робот запускается;
- Выбираем команду «/lang». Указываем нужный язык нажатием кнопки;
- Робот предлагает выбрать просто или сложный пароль. Выбираем. Видим результаты.
На примере этого Телеграм бота вы видите, что пользоваться программными помощниками очень просто.
Все роботы действуют по одному принципу — через команды. Где-то команды вводятся через строку набора сообщения, где-то — через специальные кнопки под этой строкой.
Многие роботы откликаются на команду /help — это справочник, заложенный в самого бота. Часто там можно найти полезную информацию о том, как управлять Телеграм ботом.

Любой Телеграм бот реагирует на определенные команды
Способ №2: Каталог ботов
На нашем сайте есть огромный Каталог ботов. В нем вы обязательно найдете Телеграм бота по душе, поскольку суммарно их добавлено практически 2 000 штук!
Каталог регулярно обновляется — в нем появляются новые роботы, так что стоит добавить его в закладки.
Способ №3: Список лучших
Тут все просто: воспользуйтесь нашей статьей с перечнем самых крутых роботов.
Встроенные боты (роботы) в Телеграм
Помимо программных роботов, которые выглядят, как отдельный диалог, в Телеграм есть боты, работающие в любой беседе. Чтобы ими воспользоваться, начните вводить их имя прямо в окне набора текста!
Таких роботов несколько:
@pic — ищет картинки;
@gif — ищет гифки;
@imdb — ищет фильмы;
@youtube — любое видео на Ютубе к вашим услугам;
@wiki — можно найти интересную статью на Википедии;
@vkmusic_bot — помогает найти и скачать музыку из Вконтакте;
@ya — поиск в Яндексе.
Чтобы запустить такого бота нужен минимум усилий:
- Заходим в Телеграм чат с любым собеседником;
- Пишем в строке набора сообщения имя бота. Например, @youtube;
- После имени робота вводим поисковый запрос, «Enter» пока не нажимаем;
- Просматриваем результаты выдачи и отправляем нужное видео собеседнику.
Встроенные роботы в Телеграм позволяют быстро найти практически любую информацию. При этом не нужно выходить из мессенджера и пользоваться другими приложениями или браузером.
Автоматизированное тестирование ботов для Telegram
Кажется, что время — это река, которую внезапно переклинило, и она решила течь по кругу. Именно такое впечатление складывается на первый взгляд, когда видишь, что вновь стали популярны боты в мессенджерах. Но это впечатление обманчиво. Изменилось очень многое — мощности, которые стоят за ботами, возможность обработки ими мультимедиа информации, наличие информации о пользователях, круг охвата… В общем, это явно не ностальгический тренд, а реально полезная технология, которая будет развиваться и дальше.
Боты становятся всё сложнее, они берут на себя многие функции других каналов. Например, вместо того, чтобы звонить по телефону и слушать по полчаса записанную девушку, которая говорит тебе перейти в тоновый режим и набрать волшебную последовательность символов, всё то же самое можно сделать при помощи бота. И это будет быстрее, удобнее, гибче и дешевле.
Для некоего личного проекта мне захотелось написать бота с довольно сложной ветвящейся логикой (например, это может быть система поддержки или диагностики с глубокой вложенностью). При этом граф данной логики имеет огромное количество разветвлений. В общем, быстро стало очевидно, что без автоматизированного тестирования не обойтись — иначе что-то точно упущу из внимания. И насколько же сильно я удивился, когда узнал, что способа тестировать логику ботов просто нет!
Конечно, можно зарегистрировать дополнительного бота для тестирования, но это вариант кривой и некрасивый. Обращение ко внешнему апи во время тестов, заглушка, которая не даст общаться с ботом кому попало, ограничение на скорость отправки сообщений раз в секунду… Если слать сообщение раз в секунду, то граф из каких-то 60 вершин будет тестироваться уже больше минуты! И я уже не говорю о том, что у нас нет никакой возможности смоделировать возросшую нагрузку на бота, при которой он упрётся в ограничение в 30 сообщений в секунду… В общем, я понял, что опять придётся делать что-то своё.
Два решения задачи
Надстройка
Первый вариант с огромной скоростью реализации — это просто надстройка над самой популярной Node.JS библиотекой для реализации Telegram ботов — node-telegram-bot-api. Сделано довольно просто — переписывается обработчик события на отсылку данных, после чего мы обрабатываем данные своим методом и посылаем вручную сгенерированный запрос. Выходит примерно так:
Бота, который используется для данного примера, вы можете найти на страничке библиотеки, как и собственно этот пример — не хочется приводить лишнего копи-пейста.
Свой сервер API Telegram
Решение выше хорошо для быстрого тестирования каких-то простых вещей и покроет большинство потребностей тестирования. Однако что делать, если мы хотим, скажем, тестировать, как наш бот работает под большой нагрузкой? В этом случае единственный логичный выход — это реализовать свой вариант Telegram API. Звучит довольно страшно, но на самом деле нам нужна простая реализация, которая совместима с текущими библиотеками для ботов и позволяет отправлять клиентские запросы. Кстати, как побочная фича — получается, что мы делаем полноценный сервер, с которым можно работать из любого другого стека технологий — хоть питон, хоть C#, хоть что.
To make the long story short, я сделал и такой вариант. С ним тестирование логики того же бота выглядит примерно так:
То есть, мы поднимаем у себя на локальном порту сервер, дальше стандартным образом настраиваем бота на работу с этим сервером, и просто шлём ему сообщения от ботов и клиентов. Объект клиента можно получить прямо из сервера, или можно написать своего клиента — сервер просто принимает сообщения в стандартном JSON формате по определённому адресу.
Конечно, осталось огромное количество всяких полезных вещей, которые можно добавить. К примеру, сейчас очередь сообщений хранится просто в массиве в оперативной памяти. Не реализовано эмулирование таймаутов, и поддерживается работа только с одним клиентом одновременно (сервер просто высылает все сообщения клиенту, который обратился к нему за данными от определённого бота, идентифицируемого по токену). Так же есть поддержка только отправки текстовых сообщений. Связано это с тем, что меня на текущий момент интересует только текст.
Первому проекту особо добавить нечего, а второй скорее всего будет развиваться в сторону моих личных потребностей. Но я немного рассчитываю на поддержку open source сообщества. Лицензия MIT, поддержка Node.js 4 и 6 (5 тоже будет работать, но на ней не пройдут тесты, поскольку используемый для теста бот несовместим с Node 5. Впрочем, я уже создал на это pull request), репозитории ждут ваших пулл реквестов с кодом, оформленным по включённой в проект конфигурации линтера. Некое количество тестов тоже есть. Возможно, со временем будет поддержка ботов и для других мессенджеров.
Если вам интересна сама тема ботов, то оставайтесь на связи. Будет интересно.
Как отличить бота от человека на форумах или в чатах мессенджеров?
![]()
Бот, который не приносит вреда , сразу акцентирует внимание на том , что он бот : такие боты есть и в соцсетях, и в мессенджерах, и на форумах — к ним и отношение лояльное. Но есть боты, которые всячески скрываются и стараются вести себя как люди , — таких нужно уметь распознавать.
Отличить бота от человека можно, но способы, как это сделать , будут зависеть от того, где вы пытаетесь вычислить робота. Например , для соцсети будут одни способы, для чатов — другие. В общем , давайте разбираться и брать на вооружение необходимые инструменты.
Как отличить бота от человека в чатах мессенджеров
-
Последние события. Чаще всего боты не владеют последними новостными событиями. А это значит, что можно «повернуть» ваше общение и попробовать обсудить последние новости , и при это м обязательно наблюдать за тем, как поведет себя ваш «собеседник».
-
Юмор хромает. Обычно боты юмором не блещут. Он присутствует, но в очень примитивном состоянии, поэтому робот не способен распознать шутку в контексте вашего сообщения. Тем более бот не способен распознать сарказм, поэтому он его воспримет буквально. Попробуйте применить такой прием и отследить реакцию своего оппонента.
-
Орфографические ошибки. Ошибки и опечатки (желательно несколько в одном слове) могут бота поставить в тупик, потому что он будет не готов к этому. При этом живой человек может распознать такой текст без проблем. Попробуйте и этот прием.
-
Сокращенные слова. Это тоже относится к серии «трудности распознавания». Используйте в своем диалоге сокращения слов — так есть высокая вероятность , что бот их не поймет. Помимо сокращения слов, примените еще и сокращение предложений. Боту сложно распознать контекст сообщения, поэтому вам будет легче понять , кто находится по ту сторону экрана.
Как отличить бота от человека в соцсетях и форумах
-
Находят некий аккаунт в соцсети, который подходит под нужные параметры.
-
С аккаунта полностью копируют всю информацию: аватар, фото а льбомы, основную информацию, видео, музыку.
-
Заполняют свой фейковый аккаунт иногда в этой же соцсети, иногда — в другой.
-
Добавляют несколько друзей, оставляют несколько постов, делают несколько лайков и репостов.
-
Проследите за активностью подозрительного аккаунта. Если это т аккаунт пиарит, лайкает, делится одним и тем же сайтом, порталом или постом, то тут все ясно. Тем более если этот ресурс будет из разряда «непопулярных» тем: сайты для взрослы х , онлайн-казино, кредитные организации, политические ресурсы и др.
-
Посмотрите друзей этого аккаунта. Для обычного человека слишком много друзей — это подозрительный факт. Однако не нужно путать популярных людей: музыкантов, блогеров, бизнесменов, политиков и т. д . — тут нормально иметь много друзей. Если друзей немного, то имеет смысл посмотреть, кто они . Если в друзьях такие же боты, то все ясно. Если небольшое количество друзей добавлены за один день и в течение одного часа, то тут тоже все ясно — перед вами , скорее всего , бот.
-
Посмотрите на фотографии аккаунта. Если на фото нет людей, а лишь картинки, то есть вероятность , что это бот. Но самое главное — посмотрите на дату их добавления : если в аккаунте несколько десятков фотографий (даже одного человека!), но они добавлены за один день, то это тоже повышает шансы того , что перед вами бот.
-
Напишите в «личку». Это типичная проверка на «живучесть». Если не ответит, то есть вероятность , что перед вами бот. elslots.online
-
Посмотрите на оценки, комментарии и на то, кто делился постами вашего аккаунта. Если каждый раз это небольшое количество одних и тех же людей, то есть вероятность, что перед вами бот. Не лишним будет посмотреть профиль «комментирующих», похожи ли они на живых друзей нашего предполагаемого бота? Есть ли в комментариях диалог между владельцем аккаунта и комментирующими?
Заключение
-
никогда не вести диалоги личного характера с незнакомыми вам людьми;
-
если есть хоть малейшее подозрение в достоверности аккаунта в соцсети или на фор у ме, то обходите его стороной.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.