Telegram bot windows cmd

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

Автор статьи — Денис, специалист службы технической поддержки хостинга в ООО «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 ):

Читайте также:  Windows 10 как восстановить поврежденные файлы с флешки

Переходим в созданную папку и загружаем файлы 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 для установки зависимостей.

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

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

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

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

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

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

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

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

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

Шаг 6. Запустить и проверить бота

Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:

Перейдём в каталог с файлом бота:

После этого можем запустить бота:

Заходим в Telegram, проверяем бота:

Отлично! Всё работает.

Теперь можно отключиться от сервера и закрыть окно PuTTY, бот продолжит работу.

Шаг 7. Обеспечить автоматический перезапуск бота

Из-за ошибок в коде бот может «упасть» в самый неожиданный момент. Чтобы этого не случилось, настроим автозапуск бота при старте сервера и его автоматический перезапуск при ошибках.

Это позволит боту стабильно работать даже в случае обнаружения багов. Вы сможете оперативно их исправить, а бот в это время продолжит отвечать на запросы.

Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.

Для начала отключим бота командой:

Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:

В нашем случае это будет файл /lib/systemd/system/keksbot.service . В файл поместим следующий код:

Текст в некоторых строках необходимо отредактировать относительно вашего проекта. Разберём строки, на которые нужно обратить внимание.

Читайте также:  Прервал установку обновления windows 10

В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.

Команда для запуска бота.

Её следует поменять, если имя скрипта вашего бота отличается от index.js . В таком случае нужно будет указать следующие значения:

Папка со скриптом, который мы запускаем. В нашем случае это /opt/keksbot/ .

Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:

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

Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:

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

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

Telegram-bot с нуля, установка Python и pyTelegramBotAPI. Урок 1

В этой статье мы подготовим наши «Инструменты» для дальнейшего написания кода, а уже в следующих статьях начнём разбирать как именно написать telegram bot’a.

Так что если у вас уже всё установлено, встретимся в следующей статье.

Установка языка программирования «Python» и библиотеки «pyTelegramBotAPI»

Данная статья отлично подойдёт тем, кто, возможно, совсем не разбирается в компьютерах и даже ни разу не программировал .

Объяснения будут максимально подробными для достижения нашей цели, а дополнительные знания будут переведены на » человеческий язык «, либо содержатся в ссылках, которые вы с любопытством можете прочитать. 🙂

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

В моих примерах используется Windows 7.

ОС на которых работает ЯП Python: Windows , Linux/UNIX , Mac OS X, и другие . С полным списком вы можете ознакомиться на официальном сайте Python .

Загрузка и установка Python.

Для начала нам нужно попасть на официальный сайт python , можете перейти через встроенные ссылки или найти его с помощью поисковой строки вашего браузера: https://www.python.org .

После того как вы попали на официальный сайт кликаем на » Downloads «.

И дальше только остаётся скачать python предназначенный для вашей ОС.

Если у вас Windows , как и у меня, просто качайте позднюю версию.

Если у вас другая операционная система, найдите её в предложенном списке, затем скачайте более позднюю версию .

После завершения загрузки, переходим к установке Python.

Открываем скачанный файл.

Пример названия скачанного файла: «python-*.*.*.exe».

Для себя я поставил дополнительную галочку на пункте — » Add Python 3.8 to PATH»,

перед » Install launcher for all users » галочка стоит автоматически .

Вам рекомендую ничего не менять из того, что предлагает установщик.

Нажимаем на » Install Now » и запускаем процесс установки.

Установка займёт не более 5-ти минут.

Если вы решите дальше самостоятельно изучать ЯП Python , то в завершающем окне установки вы можете открыть онлайн документацию на английском языке или найти множество самоучителей на просторах интернета.

Ну а в нашем случае, переходим к установке библиотеки » pyTelegramBotAPI «.

Установка библиотеки «pyTelegramBotAPI»

Существует два способа установки данной библиотеки,

предлагаю установить её используя pip( Python package manager).

Для этого нам придётся открыть командную строку.

Существует также несколько способов это сделать, выберем самый «короткий».

Вызовем командную строку с помощью команды » Win + R «.

TelegramBot – шлём мессаги через Telegram

Cкрипт на AutoIt для отправки сообщений через Bot-a в Telegram
Позволяет, имея зарегистрированного Телеграм Бота (нужен токен и id чата), отправлять сообщения ботом прямо из командной строки.
Размер программы меньше 852Kb. В системе может оставлять только файл настроек %Tempr%\

Читайте также:  Windows 10 отключает роутер

tgbot.tmp
В обращении очень прост.
Использует несколько параметров командной строки /h, /s, /d, /m

  • TelegbamBot_v2.exe /h – вывод помощи в консоль (на английском)
  • TelegbamBot_v2.exe /s token chat_id – записывает токен и id чата во временный файл для дальнейшего использования, файл записывается в каталог темп и содержит в открытом виде ваши token и chat_id, поэтому позаботьтесь о его удалении командой /d
  • TelegbamBot_v2.exe /d – удаляет данные записанные параметром /s
  • TelegbamBot_v2.exe /m token chat_id message – отправляет сообщение используя только данные коммандной строки. если в сообщении присутствуют пробелы – то все сообщение ОБЯЗАТЕЛЬНО поместить в кавычки: TelegbamBot_v2.exe /m 328765:ldbflshdgblb 8374658 “ваше сообщение”
  • TelegbamBot_v2.exe message – отправляет сообщение message используя, заранее сохраненные командой /s, token и chat_id

Можно легко сделать различные уведомления от программ, служб, сообщения от систем аудита и т.п.

В архиве файл исходника на AutoIt и скомпилированный консольный бинарный (.exe) под x86
TelegramBot_v2.zip version=2.0.0.21 from Yandex.Disk
______________________________________________________________________
UPD. 15-12-2017
программа обновлена до версии 2.0.0.21
Что изменено:
1.Полностью переписан способ передачи в программу token-a и chat_id
2.Программа переделана в консольную версию. Убраны все GUI сообщения.

Как зарегистрировать своего бота и получить token и chat_id

  1. Открываем Телеграм и ищем контакт @BotFather, открываем с ним чат и нажимаем внизу Начать.
  2. Пишем боту /newbot , он ответит “Alright, a new bot. How are we going to call it? Please choose a name for your bot.” – он говорит, что бот создан и спрашивает, как его назвать – пишем ему имя нашего будущего бота, конечно же на английском, например: mylitlebot
  3. Бот напишет вам “Good. Now let’s choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.” – просит указать username нашего бота. напишем ему имя, причем в конце обязательно должны быть символы bot, например myseperlitle_bot(ошибка сделана намерено, потому что @mysuperlitle_bot уже был кем то зарегистрирован на момент написания данной статьи)
  4. Бот ответит вам следующим текстом
    Done! Congratulations on your new bot. You will find it at t.me/myseperlitle_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you’ve finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.Use this token to access the HTTP API:
    505718974:AAHYpDfIaIJNRWY1KDiMrDagP-YqsUQE6ts
    For a description of the Bot API, see this page:
    https://core.telegram.org/bots/api
    505718974:AAHYpDfIaIJNRWY1KDiMrDagP-YqsUQE6ts – это и есть ваш токен нового бота.
    Теперь можно создать чат с ботом и получить его chat_id
  5. Ищем чат по userame указанном нами в п.3 @myseperlitle_bot или перейдем по ссылке, которую нам прислал бот в последнем сообщении http://t.me/myseperlitle_bot , словом открывем чат с ботом и пишем ему что-нибудь. Далее берем наш токен вставляем его в следующую строку вместо строки
    https://api.telegram.org/bot/getUpdates
    в моем случае это был такой url: https://api.telegram.org/bot505718974:AAHYpDfIaIJNRWY1KDiMrDagP-YqsUQE6ts/getUpdates
    отправляем запрос через браузер и получаем ответ:

В итоге мы получили:
token = 505718974:AAHYpDfIaIJNRWY1KDiMrDagP-YqsUQE6ts
chat_id = 376718569

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