- Что такое телеграм-боты и зачем они нужны
- Как ими пользоваться
- Реально ли создать собственного телеграм-бота
- Сервер для бота Telegram: главные факторы выбора
- Выбираем хостинг для телеграм-бота
- Типы
- Общий виртуальный
- Виртуальный сервер
- Выделенный сервер
- Выбираем тариф
- Как загрузить настроить и запустить телеграм-бот на сервере
- Настраиваем сервер для Telegram-бота
- Готовим программу и отправляем её на сервер
- Что дальше
- Размещаем чат-бота
- Запускаем бота
Что такое телеграм-боты и зачем они нужны
В мессенджерах под ботами понимаются специальные учетные записи, которые могут обрабатывать и отправлять сообщения независимо. Пользователи Telegram общаются с ними через групповые или обычные чаты. Управление ботами осуществляется через HTTP-интерфейс (API Bot).
Назначение ботов может быть самым разным. Они служат для информирования подписчиков о погоде, курсе валют и умеют переводить тексты. С ними можно играть в шахматы, шашки и другие игры. С ними легко найти единомышленников. Сами они могут быть приятными товарищами, участниками викторин и конкурсов.
Бот Telegram может выполнять гораздо более серьезные функции, в том числе помогать в электронной коммерции. Можно доверить общение с покупателями, рассылку через фильтры, уведомления о пополнении ассортимента. Бот также сможет предлагать клиентам определенные услуги и товары.
Как ими пользоваться
В Telegram есть каталог ботов со ссылками на помощников. Список есть на сайте https://tgram.ru/bots/.
Нужного бота можно найти другим способом — в строке поиска. Для этого войдите в приложение и напишите название робота в поле с лупой. Помощником будет тот, за именем которого стоит значок робота.
Чтобы начать взаимодействие с ботом, нажмите / start. Вы сразу получите информацию о программе и список доступных команд.
Реально ли создать собственного телеграм-бота
Каждый может создать своего робота-помощника. Для этого есть специальный конструктор BotFather и подробная инструкция. Когда бот будет готов, его создатель получит так называемый токен, ключ авторизации. Осталось зайти в раздел API Bot и выставить необходимые настройки.
Роботы, созданные с помощью конструктора, выполняют все вышеперечисленные и многие другие функции. Пользователи могут настроить свои клавиатуры, включить приватный режим для группы, но этого может быть недостаточно.
Если у вас есть желание и знание основ программирования, вы можете, например, разработать Android-приложение для удаленного управления смартфоном через Telegram. Получать входящие сообщения со смартфона на настольном компьютере и оперативно на них отвечать — это действительно удобно.
Устаревший смартфон с подобным мобильным приложением легко превратить в надежную систему сигнализации, которая обнаруживает движущиеся объекты и записывает их на видео. Многие творческие идеи уже воплощены в реальность. Функционал ботов Telegram ограничен только фантазией разработчика.
Сервер для бота Telegram: главные факторы выбора
Telegram выделяет место для пользовательских роботов на своих облачных серверах. Но, во-первых, это место строго ограничено. Во-вторых, по истечении относительно короткого периода времени вся информация с этого сервера удаляется. Чтобы бот работал правильно и в полной мере использовал его потенциал, вам необходимо позаботиться о хостинге. Выбирая сервер для робота, обратите внимание на следующее:
- тарифная политика.
- какие языки программирования поддерживаются;
- подходит ли сервер в принципе для телеграмм-бота;
- насколько клиентоориентирован хостинг-провайдер;
- если есть ускорение обработки графики;
В идеале сервер должен поддерживать несколько языков. Это дает право разработчику. В то же время, если вам нужен конкретный сервер для Python-бота, поддержка самого NodeJS будет излишней.
Хороший сервер чат-бота должен обеспечивать ускорение графики. Только при наличии возможно построить нейронную сеть и создать условия для обучения бота при общении с живыми собеседниками.
Если машинное обучение не предусмотрено, и роботу нужно только отвечать заранее подготовленными предложениями, чтобы вызвать вопросы, ускорение графики становится излишним. Возможен и компромиссный вариант — аренда такого хостинга на период разработки и перенос готовой нейросети на более дешевый сервер.
Стоимость аренды — важный фактор выбора. Учитывая, что даже сложный бот нейронной сети не занимает столько места на диске и не требует чрезвычайно высокой вычислительной мощности, вы можете выбрать сервер с экономичными тарифами.
Ориентация на клиента — это способность хостинг-провайдера максимально удовлетворить потребности пользователей. Желательно, чтобы предлагалось не только современное программное обеспечение, но и круглосуточная техническая поддержка, оперативная помощь в администрировании.
Выбираем хостинг для телеграм-бота
Для начала попробуем быстро разобраться в юридической составляющей. В России власти заблокировали только серверы и сам сайт Telegram (UPD: уже разблокирован, поражение в этой войне было неминуемо). Использование мессенджера на самом деле не запрещено. Но не все российские сервера будут корректно работать с ботами для этого мессенджера. Так что перед арендой лучше всего уточнить в техподдержке, подходит ли их хостинг для телеграмм-бота.
Хостинг чат-бота должен поддерживать несколько языков программирования. Например, хостинг для телеграмм-бота на Python должен поддерживать этот язык. Точно так же бот, написанный на NodeJS, должен быть развернут на сервере, где может быть загружен язык NodeJS.
Если хостинг соответствует этим требованиям, он подойдет для работы простого телеграмм-бота, который выдает заранее подготовленный ответ на активацию слов. Если помощник использует в своей работе машинное обучение, стоит обратить внимание на наличие ускорения графики — без него построение нейронной сети займет много времени. Однако, если ваш бот не обучается при общении с реальными собеседниками, вы можете арендовать хостинг с графическим ускорением только на этапе разработки, а затем развернуть обученную нейронную сеть на обычном хостинге для бота Telegram, без графики.
Обратите внимание на наличие круглосуточной технической поддержки.Если на вашем хостинге ее нет, лучше откажитесь от нее в пользу более клиентоориентированной компании, даже если у нее более высокие цены. Оптимальным будет хостинг с бесплатной помощью в администрировании сервера.
Для развертывания бота для Telegram больше подходит VDS / VPS. Для него не требуется домен, и к нему можно получить доступ с помощью выделенного IP-адреса, что полезно при развертывании бота. Кроме того, такие серверы лучше поддерживают масштабирование проекта, поэтому при увеличении потока посетителей нет необходимости переключаться на другой сервер — достаточно изменить скорость или ее настройки.
Читайте также: Как в Телеграмме удалить канал или отписаться от него: инструкция
Типы
Есть несколько видов хостинга. Они различаются не только ценой, но и программным обеспечением, функциями и объемом памяти.
Общий виртуальный
Один из самых популярных. Подходит для небольших интернет-магазинов, сайтов. Общий хостинг — это результат разделения сервера на несколько частей для сдачи в аренду. Из минусов виртуального типа: наличие ограничений по скорости записи или использования ОП.
Сегодня самый известный тип — это хозяин. Цена — от 2 до 15 долларов в месяц.
Виртуальный сервер
Также разделите сервер на несколько арендованных частей, но эти части будут независимы друг от друга, поэтому ограничений нет.
Это удобно, потому что вы можете настроить его специально для своего проекта или даже установить отдельное программное обеспечение. Подходит для больших проектов. Стоимость аренды этого ресурса составляет 17$.
Выделенный сервер
Этот хост представляет собой целый сервер. Плюс: нет зависимости от остальных клиентов провайдера. Вы, как единственный администратор, получаете доступ к программному обеспечению, то есть полностью контролируете системы.
Выделенный сервер — отличный вариант для игр, социальных сетей и крупных проектов. Но стоимость аренды такого хостинга составляет 50 долларов$.
Выбираем тариф
О стоимости хостинга для бота Telegram стоит поговорить отдельно. Существует целый класс бесплатных хостингов — сюда входит, например, Heroku. Они могут быть полезны при тестировании бота — разместите своего чат-бота на Heroku и протестируйте все функции, прежде чем арендовать хостинг и загрузить свое творение. Но имейте в виду, что производительность на этом хостинге будет нестабильной — чат-боты обычно работают в течение 30 секунд, а затем выключаются на неопределенный срок. Так что они не подойдут для полного раскрытия вашей идеи.
Выбор ставки обычно определяется потоком клиентов, а не сложностью бота. Для развертывания простого нейросетевого бота не требуется много места на диске. Вам не нужна большая вычислительная мощность — у большинства ботов более 512 МБ ОЗУ. Таким образом, вы можете выбрать самые дешевые тарифы.
Ключевым требованием к хостингу является стабильность соединения, поэтому лучше сразу отказаться от виртуального хостинга для бота Telegram. Но VPS / VDS сможет обеспечить надежное соединение. Предпочтительной операционной системой для сервера является Ubuntu, так как большинство модулей для языков программирования написаны специально для нее. Стоимость таких виртуальных серверов начинается от 50 рублей в месяц.
Как загрузить настроить и запустить телеграм-бот на сервере
Далее мы рассмотрим, как разместить на VDS Python бота, предназначенного для автоматического ответа на команды. Прежде всего, вам необходимо подключиться к арендованному серверу по протоколу SSH.
Для этого используется Termius или другой специальный клиент. В поле подключения введите свой логин, пароль, имя хоста и другие данные, которые можно найти в личном кабинете.
После сохранения подключения перейдите на главный экран и нажмите кнопку с именем сервера. Автоматически должна открыться консоль, в которой нужно ввести серию команд.
После завершения настройки клиента SSH отключается и приступает к размещению робота. Для этого вам необходимо подключиться к серверу по протоколу SFTP. Для его настройки откройте одноименную вкладку в Termius.
После нажатия на кнопку «Выбрать хост» выбирается имя сервера, создается папка и в нее копируются все файлы, относящиеся к проекту. Они вводят команды для запуска бота и проверки его работы в мессенджере.
Настраиваем сервер для Telegram-бота
Давайте рассмотрим настройку сервера на примере хостинга ботов, написанного на Python, который будет автоматически отправлять ответы на различные команды.
После найма VPS необходимо подключиться к нему по протоколу SSH через специальный клиент (например Termius), используя данные личного кабинета на хостинге для телеграмм-бота. Вам нужно имя хоста, логин, пароль, порт. Вводим их в поля нового подключения. Вот как это будет выглядеть в Термиусе:
Сохраняем соединение, возвращаемся на главный экран программы (здесь появляется наше новое соединение) и нажимаем на имя сервера, который мы ввели ранее:
Готово, добрались до консоли сервера:
Отсюда мы можем управлять сервером, загружать необходимые нам модули и библиотеки. Это то, что мы будем делать. Для работы бота серверу необходим языковой модуль Python. Мы рассматриваем бота, написанного на третьей версии языка, поэтому нам необходимо установить python3. Для этого введите в консоли сервера следующие команды:
sudo apt —reinstall install python3 -y sudo apt —reinstall install python3-pip -y
Не забываем про библиотеки. На Python боты для Telegram обычно пишутся с использованием библиотеки TelegramBotAPI. Для его установки введите команду:
pip3 устанавливает pyTelegramBotAPI
Теперь нам нужно установить удобный менеджер процессов PM2 и язык программирования NodeJS с менеджером пакетов npm, чтобы это работало:
sudo apt install nodejs sudo apt install npm npm install pm2 -g
Готовим программу и отправляем её на сервер
Единственное, что нужно добавить в код нашего телеграмм-бота, — это специальная команда для интерпретатора, чтобы он знал, как работать с нашим файлом. Но сначала нужно проверить, какая версия Python установлена на нем.
Чтобы выяснить это, давайте подключимся к серверу через SSH и запросим его напрямую. Для этого используем программу Putty и берем настройки подключения в учетной записи хостинга:
Этих данных достаточно для управления сервером по SSH.
Закладываем их в Putty и соединяем. Помните, что в целях безопасности при вводе пароля курсор располагается так, чтобы никто не мог понять, сколько символов вы вводите. После подключения введите команду python3.3 -V — она покажет, поддерживает ли сервер эту версию Python:
Сервер говорит, что на нем установлен Python 3.3.5 — нам этого достаточно. Теперь добавьте следующую строку в начало нашего файла с программой: #! / Usr / bin / python3.3
В статье о том, как опубликовать сайт в Интернете, мы рассказали о том, как загружать файлы на сервер. Этот навык теперь пригодится: сохраните нашу программу гороскопа в виде файла .py и отправьте его на сервер в папке cgi-bin (никто не увидит, что в этой папке):
Что дальше
Мы сделали самое простое: мы запускали сценарий на сервере и запускали его все время. Но вот как это можно улучшить:
- прикрутите этот сервис к другому телеграм-боту, чтобы в конце концов боты контролировали весь мир.
- перезапустить программу, если она остановилась;
- написать отдельный сервис, через который мы можем запускать и останавливать бота;
Веб-разработка — это новый черный цвет, и мы много знаем о моде и поможем вам освоить новую специальность за шесть месяцев. См. Дополнительные сведения о том, как удалить историю разговоров с помощью Google Assistant и Siri
Эти голосовые помощники слишком много знают о нас.
Размещаем чат-бота
Вы закончили с настройкой сервера, вы можете выйти из SSH. Теперь нам нужно подключиться к серверу по протоколу SFTP. Чтобы настроить его, перейдите на вкладку SFTP в Termius, нажмите «выбрать хост» и выберите имя сервера. Затем создайте папку с любым названием латинского алфавита.
Затем копируем в него файлы бота. Termius поддерживает перетаскивание, поэтому вы можете просто перетащить содержимое папки вашего бота.
Запускаем бота
Бот готов к запуску! Для этого введите команды в консоли сервера одну за другой:
cd имя_папки pm2 start main.py —interpreter = python3 (замените main на имя исполняемого файла бота)
Бот запущен и работает. Чтобы проверить это, мы можем ввести команду диспетчера процессов в консоли сервера:
список pm2
Команда отобразит список процессов, запущенных на сервере, в консоли. Найдите строчку с именем бота. Если перед столбцом «Статус» отображается «Онлайн», бот успешно запущен.
Самый интересный момент — проверить работу бота в самом мессенджере: