Telegram бот для windows

Телеграм-бот на сервере: загрузка, настройка и запуск

Автор статьи — Денис, специалист службы технической поддержки хостинга в ООО «REG.RU».

В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.

Шаг 1. Выбрать хостинг

Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):

  • Google Cloud
  • Oracle Cloud
  • Amazon Web Services

Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.

Для примера мы закажем облачный VPS в REG.RU, вы можете воспользоваться любым VPS-хостингом. Он удобен для тестового проекта тем, что оплата почасовая. При выборе тарифа мы рекомендуем ориентироваться на несколько параметров:

  1. Прогнозируемая нагрузка — зависит от сложности вашего бота и количества запросов к нему.
  2. Количество оперативной памяти — это зависит от многих факторов, как, например, уровень оптимизации кода и общий масштаб вашего проекта.

Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — 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 уже указан по умолчанию:

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

Читайте также:  Создание частной сети windows 10

Вводим root , после чего появится запрос пароля, при вводе которого символы не отображаются. Не стоит переживать, это особенность работы Linux — пароль нужно вводить вслепую. Чтобы не делать этого вручную, можно скопировать пароль и нажать правой кнопкой мыши в окне PuTTY. Убедитесь, что вы скопировали пароль без пробелов!

Шаг 5. Установить Node.js

Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.

Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:

Вывод будет примерно таким:

Нас интересует поле NAME , в котором указано название дистрибутива.

Помимо Node.js нам понадобится утилита Screen, чтобы бот продолжал работать, когда мы отключимся от сервера. Также нужен менеджер пакетов npm для установки зависимостей.

Подождём завершения установки и проверим, что Node.js работает:

Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.

Теперь перейдём в папку с файлом бота и установим зависимости:

Возможные ошибки при установке, и как их решить

При установке могут появиться ошибки вида:

Обычно это связано с тем, что у пользователя недостаточно прав для установки пакетов на сервере, либо предыдущий процесс установки завершён некорректно.

В первом случае необходимо убедиться, что вы подключились к серверу под именем суперпользователя root — при необходимости зайдите на сервер заново.

Во втором случае для решения проблемы нужно завершить процесс менеджера пакетов и удалить lock -файлы. Чтобы это сделать, запустите команды:

После этого попробуйте заново запустить установку.

Шаг 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:

Через пять секунд бот автоматически перезапустится.

Помимо запуска мы можем управлять ботом командами:

15 полезных ботов для Telegram на все случаи жизни

Вернуться к делам минувших дней и написать продолжение обзора Telegram-ботов (первую часть см. по этой ссылке) нас побудили сразу три информационных повода.

Первый связан с расширяющейся не по дням, а по часам аудиторией коммуникационного сервиса в России, с момента блокировки последнего в 2018 году увеличившейся аккурат в два раза — с 15 до 30 миллионов человек. Двукратный рост числа пользователей находившегося вне закона мессенджера наглядно иллюстрирует эффективность работы Федеральной службы по надзору в сфере связи, информационных технологий и массовых коммуникаций, в ведении которой находится контроль за противоправной деятельностью сетевых ресурсов в Рунете. Напомним, решение об ограничении доступа к Telegram по всей стране было принято судом по иску Роскомнадзора после того, как разработчики продукта категорически отказались передать ФСБ России ключи шифрования для доступа к переписке пользователей и борьбы с терроризмом.

Читайте также:  Как удалить обновления защитника windows 10

Всего мессенджером Telegram в мире пользуются свыше 400 млн человек, из которых более 30 млн — из России

С законодательной инициативой о прекращении гонений на Telegram ранее выступили депутаты Государственной думы, предложившие запретить блокировку коммуникационных сервисов, с помощью которых госорганы распространяют официальную информацию во время чрезвычайных ситуаций и в период повышенной готовности. В Минкомсвязи отклонили эту идею, мотивировав свой отказ возможным злоупотреблением разработчиков таких сервисов. Сам же Дуров развеял опасения чиновников и заявил, что разблокировка мессенджера может сыграть положительную роль в обеспечении национальной безопасности страны.

По словам основателя Telegram, опыт работы коммуникационного сервиса в десятках стран на протяжении последних шести лет показал, что борьба с терроризмом и право на тайну личной переписки не исключают друг друга. «Надеюсь, что учёт мировой практики и специфики современных технологий поможет российским законодателям совместить эти две задачи. Со своей стороны буду продолжать поддерживать подобные инициативы», — подчеркивал Павел Дуров. С чем связана такая неожиданная покорность господина Дурова, некогда горой стоявшего за своё детище, остаётся только догадываться. Не исключено, что виной тому стал провал блокчейн-проекта Telegram Open Network (TON), побудивший руководство «Телеграма» пересмотреть планы по развитию продукта и иначе расставить акценты.

Ну и наконец 18 июня этого года с Telegram были официально сняты ограничения (при том, что официальной информации о переданных ключах шифрования так и нет), так что теперь можно рассчитывать на еще больший рост аудитории. Павел Дуров на новость о разблокировке среагировал опять же непривычно доброжелательно по отношению к властям, заявив, что «действия властей внушают оптимизм».

Мессенджер Telegram вышел в 2013 году и в настоящий момент доступен на всех популярных платформах: Windows, macOS, Chrome OS и Linux, а также на Android и iOS

Любопытно вспомнить в связи с этими событиями довольно интересную позицию Министерства цифрового развития, связи и массовых коммуникаций Российской Федерации, в ведении которого находится упомянутый выше Роскомнадзор. Недавно глава ведомства Максут Шадаев в эфире программы «Познер» на Первом канале признался, что Telegram среди прочих мессенджеров оказался — загибаем пальцы! — наиболее быстрым, эффективным, простым, удобным и дешёвым способом обратной связи с находившимися за рубежом россиянами в период пандемии коронавируса и их оперативного информирования о вывозных авиарейсах. «Выяснилось, что наши граждане активно используют Telegram», — поделился своим наблюдением министр, подчеркнувший, что, невзирая на блокировку ресурса по решению суда, отечественное законодательство не запрещало использование коммуникационного сервиса россиянами. «Если мессенджер технически доступен, граждане могут им пользоваться и в этом смысле ответственности не несут», — заверил руководитель Минкомсвязи России, видеозапись интервью с которым доступна для просмотра на YouTube по этой ссылке.

Министр цифрового развития, связи и массовых коммуникаций РФ Максут Шадаев объяснил, зачем ведомство использует Telegram (кадр из телепередачи «Познер» на Первом канале)

Отмечая наконец свершившуюся официальную разблокировку мессенджера, который толком так и не удалось заблокировать, публикуем очередную подборку бот-сервисов, позволяющих решать самые разные задачи и существенно расширяющих функциональные возможности одного из самых популярных мессенджеров в мире.

Бот Алёша (@aleksobot). Сервис для конвертирования исходящих текстовых сообщений в голосовой формат. Реализована поддержка нескольких движков синтеза речи и возможность подключения бота к чатам с текущими собеседниками.

Читайте также:  Web camera windows microsoft

Voicy (@voicybot). Электронный помощник, решающий обратную задачу: переводит все голосовые сообщения и аудиофайлы (.ogg, .flac, .wav, .mp3), которые получает, в текст. Умеет оперировать огромным количеством языков и поддерживает два движка распознавания речи Wit.ai и Google Speech, управлять которыми можно в настройках бота.

Gmail Bot (@GmailBot). Сервис, разработанный командой Telegram и позволяющий использовать мессенджер в качестве клиента Gmail для оперативного обмена почтовыми сообщениями. Работа бота возможна только после предоставления соответствующих прав доступа в настройках аккаунта Google. Отзывы о Gmail Bot в интернете положительные, но забывать о возможных рисках при работе с этим продуктом всё же не стоит.

Бот-бухгалтер (@iloveipbot). Помощник для индивидуальных предпринимателей. Умеет рассчитывать страховые взносы ИП, помогает уменьшить налог по УСН, напоминает о предстоящих платежах и сдаче отчётности. В будущем разработки обещают реализовать интеграцию бота с банковскими системами, добавить функции загрузки выписок и отправки платёжных поручений, подготовки и сдачи отчётности через интернет.

Бот-напоминатель (@SkeddyBot). Простой, но эффективный инструмент для управления напоминаниями в заданное время. Достаточно отправить боту сообщения вида «позвонить в офис через 20 минут», «взять документы завтра в 8 утра», «проверять готовность пирога каждые 10 минут», и сервис будет информировать об этом пользователя с выверенной аптекарской точностью.

YouTube Bot (@youtube). Сервис, позволяющий подписываться на обновления любимых YouTube-каналов и держать руку на пульсе происходящих в медийной платформе Google событий.

Classical Music (@music). Бот для прослушивания классической музыки. Отличная находка для почитателей творчества Баха, Генделя, Моцарта, Бетховена, Штрауса и прочих выдающихся композиторов, представителей золотого фонда мировой музыкальной культуры.

Бот для проверки утечек паролей (@MailSearchBot). Позволяет «пробить» email-адрес, логин и номер телефона на предмет их присутствия в базе скомпрометированных учётных записей. Если выяснится, что один из паролей засветился в открытом доступе, рекомендуется принять соответствующие меры по его замене.

Конструктор ботов (@BotFather). Официальный сервис Telegram для создания ботов и их интеграции с различными веб-службами. С его помощью можно создать бота для обработки пользовательских команд, отправки уведомлений, управления «умным домом» и выполнения различных действий.

Radio Archive Bot (@radiobot). Бот, предоставляющий доступ к архиву передач различных радиостанций, как российских, так и зарубежных. Транслирование аудиопотока осуществляется в формате AAC+. Данный метод сжатия обеспечивает экономию трафика и позволяет слушать радио в сетях с низкой скоростью передачи.

Бот для разработчиков (@integram_bot). Позволяет интегрировать Telegram со сторонними сервисами Trello, Gitlab, BitBucket, GitHub, Webhook, которыми пользуются программисты во всём мире для хостинга IT-проектов и их совместной разработки.

Словарный бот (@dictsbot). Сервис, предоставляющий доступ к внушительной коллекции толковых и тематических словарей на русском, украинском, английском и немецком языках. Поддерживается взаимодействие с «Википедией», а также с системами перевода «Яндекса» и Google.

Бот для распознавания треков (@yamelodybot). Сервис, функционирующий в паре с «Яндекс.Музыкой» и позволяющий идентифицировать неизвестные музыкальные композиции. Достаточно отправить боту аудиосообщение с фрагментом неизвестной мелодии продолжительностью от 5 до 10 секунд, и система автоматически определит её название и исполнителя, а также пришлёт ссылку для прослушивания полной версии трека.

Штрафы ГИБДД (@youshtraf_bot). Бот, название которого говорит само за себя. Позволяет проверять, есть ли штрафы на автомобиль и водителя, получать подробную информацию об этих штрафах: дату, время, место нарушения, статью правонарушения, фото с камер фиксации, а также оплачивать их. Поддерживается работа с базами данных ГИБДД, МАДИ, АМПП и системой «Платон». Возможен автоматический мониторинг штрафов.

RSS4YOU (@rss4you_bot). Бот, позволяющий использовать Telegram в качестве RSS-ридера для работы с новостными источниками. Поддерживает различные форматы данных и возможность разметки новостных сообщений, а также имеет в своём составе развитые средства фильтрации скачиваемых из Сети материалов.

Есть что добавить? Пишите в комментариях к обзору.

Оцените статью