Как обновить бота в телеграм
В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.
Шаг 1. Выбрать хостинг
Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):
- Google Cloud
- Oracle Cloud
- Amazon Web Services
Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.
- Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
- Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.
Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.
Шаг 2. Заказать хостинг
После заказа и оплаты дождёмся настройки сервера:
В течение минуты статус сервера сменится с «В процессе» на «Активен». После этого отобразятся реквизиты доступа к серверу, они также будут отправлены на почту:
Шаг 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:
Если ты совсем не ориентируешься в Python, то отличным началом будет прочтение трех вводных статей, которые я публиковал в «Хакере» этим летом, либо посещение курса «Python для новичков», который я начну вести для читателей «Хакера» уже совсем скоро — 30 ноября.
Чтобы создать бота, нам нужно дать ему название, адрес и получить токен — строку, которая будет однозначно идентифицировать нашего бота для серверов Telegram. Зайдем в Telegram под своим аккаунтом и откроем «отца всех ботов», BotFather.
Жмем кнопку «Запустить» (или отправим / start ), в ответ BotFather пришлет нам список доступных команд:
- / newbot — создать нового бота;
- / mybots — редактировать ваших ботов;
- / setname — сменить имя бота;
- / setdescription — изменить описание бота;
- / setabouttext — изменить информацию о боте;
- / setuserpic — изменить фото аватарки бота;
- / setcommands — изменить список команд бота;
- / deletebot — удалить бота.
Отправим бате‑боту команду / newbot , чтобы создать нового бота. В ответ он попросит ввести имя будущего бота, его можно писать на русском. После ввода имени нужно будет отправить адрес бота, причем он должен заканчиваться на слово bot. Например, xakepbot или xakep_bot . Если адрес будет уже кем‑то занят, BotFather начнет извиняться и просить придумать что‑нибудь другое.
Для взаимодействия с Telegram API есть несколько готовых модулей. Самый простой из них — Telebot. Чтобы установить его, набери
В Linux, возможно, понадобится написать pip3 вместо pip , чтобы указать, что мы хотим работать с третьей версией Python.
Эхо-бот
Для начала реализуем так называемого эхо‑бота. Он будет получать от пользователя текстовое сообщение и возвращать его.
Телеграм имеет существенное отличие от ближайших конкурентов — Viber и WhatsApp. Оно заключается в огромном количестве самых разнообразных ботов, которые востребованы аудиторией. Ботов иногда называют «роботами». Разберемся, что такое роботы в Телеграм и как они работают.
Специально для жителей РФ: рекомендуем бота TeleBot, который раздает надежные, быстрые и бесплатные MTProxy для обхода блокировки Telegram.
Содержание:
Что такое роботы в Телеграм
Суть бота — выполнение различных действий в ответ на посылаемые пользователем команды.
Так как у Телеграм открытое API (интерфейс прикладного программирования), любой желающий может создать собственных роботов. Однако для этого все же потребуются навыки программирования.
Безопасны ли Telegram-боты?
Да, вы можете не волноваться, главное запомнить основной принцип: относиться к Телеграм-роботу так, как вы относитесь к пользователям, с которыми не знакомы. В общем, актуальны стандартные правила безопасности.
И еще одна предосторожность, прежде чем мы перейдем к тому, как найти роботов: не открывайте .exe файлы, которые вам отправляет Telegram-бот, то есть программы.
Если же неприятность произошла и бот завладел вашими данными, то один из выходов — удалить свою страницу в Телеграм, чтобы пресечь дальнейшую кражу личной информации.
Телеграм-роботами очень просто пользоваться. Далее, на примере пары интересных ботов, мы расскажем и покажем последовательность действий.
Следует быть осторожным с предложениями взломать ботов, обычно это просто выманивание денег.
Как найти и запустить бота в Телеграм
Способ №1: зная юзейрнем
Роботов в мессенджере сотни тысяч, если не миллионы. Найти среди них что-то интересное непросто, но возможно. Посмотрим что нужно сделать, чтобы найти нужного робота в Телеграме.
Если вы знаете юзернейм бота (@имя_бота_bot), то всё очень просто. Нужно всего лишь ввести его в строку поиска мессенджера.
Вот Телеграм-робот для примера: @EasyStrongPasswordBot. Кстати, весьма полезный помощник. Он создаёт для вас сложные пароли и подбирает к ним мнемонические фразы для быстрого запоминания.
- Вставляем в строку поиска телеграм имя бота — @EasyStrongPasswordBot;
- Проверяем результаты поисковой выдачи. У нужного нам робота имя должно полностью совпадать с тем, что мы указали;
- Выбираем команду «/start». Робот запускается;
- Выбираем команду «/lang». Указываем нужный язык нажатием кнопки;
- Робот предлагает выбрать просто или сложный пароль. Выбираем. Видим результаты.
На примере этого Телеграм бота вы видите, что пользоваться программными помощниками очень просто.
Многие роботы откликаются на команду /help — это справочник, заложенный в самого бота. Часто там можно найти полезную информацию о том, как управлять Телеграм ботом.
Способ №2: Каталог ботов
На нашем сайте есть огромный Каталог ботов. В нем вы обязательно найдете Телеграм бота по душе, поскольку суммарно их добавлено практически 2 000 штук!
Каталог регулярно обновляется — в нем появляются новые роботы, так что стоит добавить его в закладки.
Способ №3: Список лучших
Тут все просто: воспользуйтесь нашей статьей с перечнем самых крутых роботов.
Встроенные боты (роботы) в Телеграм
Помимо программных роботов, которые выглядят, как отдельный диалог, в Телеграм есть боты, работающие в любой беседе. Чтобы ими воспользоваться, начните вводить их имя прямо в окне набора текста!
Таких роботов несколько:
@pic — ищет картинки;
@gif — ищет гифки;
@imdb — ищет фильмы;
@youtube — любое видео на Ютубе к вашим услугам;
@wiki — можно найти интересную статью на Википедии;
@vkmusic_bot — помогает найти и скачать музыку из Вконтакте;
Чтобы запустить такого бота нужен минимум усилий:
Встроенные роботы в Телеграм позволяют быстро найти практически любую информацию. При этом не нужно выходить из мессенджера и пользоваться другими приложениями или браузером.
Мы написали подробную инструкцию, как подключить бот к каналу и пользоваться всеми его возможностями.
Подключение и настройка бота
В первую очередь нам понадобиться создать своего собственного бота. Не пугайтесь, в этом нет ничего сложного и займет всего пару минут.
Заходим в бот @BotFather, нажимаем Старт и отправляем команду /newbot.
Далее вам потребуется придумать и ввести имя, а затем @username бота.
Вот и все, ваш бот готов. Скопируйте себе Токен бота, он понадобиться для подальшего подключения к ControllerBot. Также можете сразу добавить созданного бота в администраторы вашего канала.
Теперь можно приступать к настройкам Контроллер бота. Для этого перейдите по ссылке или найдите в поиске @ControllerBot и нажмите Старт.
Далее введите команду /add, чтобы добавить новый канал и нажмте кнопку “Подключить новый бот”.
Скопируйте Токен вашего бота (о котором писали выше) и отправтьте его в контроллербот. Затем отправьте ему @username вашего канала и город, для правильной настройки отложенного постинга.
Как делать отложенный постинг
Затем установите количество часов, через которое вы хотите удалить пост. Можно выбрать из перечисленных вариантов или написать на клавиатуре нужно количество часов.
Как добавить URL-кнопки
URL-кнопки — это специальные кнопки в Telegram, в которые можно красиво спрятать ссылки. Вот так это выглядит:
Как добавить реакции
Реакции в Telegram — это аналог лайков в соцсетях. К каждому посту вы можете прикреплять разные эмодзи, чтобы следить за тем, что интересно вашим подписчикам.
После публикации вы сможете увидеть, сколько раз подписчики нажали на те или иные смайлы.
Часто задают вопрос о том, как разместить картинку под текстом, а не обычным способом — фотография, а затем подпись.
Таким обрзом вы можете прикрепить гифку, видео или другие медиафайлы весом не больше 5мб.
Как сделать гиперссылку
Установить красивую ссылку в слове достаточно просто. В боте выберите «Форматирование: Markdown» и вставьте в текст такую конструкцию:
Если выбрать «Форматирование: HTML» , то нужно создать следующую конструкцию:
Как форматировать текст
Слова можно выделять жирным, курсивом и моноширным шрифтами. Для этого убедитесь в том, что выбрано Markdown форматирование и оберните нужные слова в такие конструкции:
Для HTML:
<code>код в виде строки</code>
Также текст можно форматировать и без помощи бота. Подробнее читайте в статье.
Как отслеживать статистику
Как управлять опубликованными постами
Другие возможности Controller Bot
Читайте также: