Создание telegram-ботов на Python


Создание telegram-ботов на Python

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

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

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

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

Для Ubuntu обновление проводится в 2 команды:

Их можно совместить в одну:

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

Создание пользователя для бота

Запускать бота под пользователем root небезопасно. Сделайте отдельного пользователя для этих целей.

Запустите команду adduser, передав ей аргументом имя будущего пользователя.

Далее команда предложит придумать пароль, повторить его ещё раз и заполнить информацию о новом пользователе. Все поля, кроме пароля, не обязательны, можно жать Enter для подстановки значения по умолчанию.

Стать новым пользователем можно командой su:

Переключиться обратно к root-пользователю можно с помощью команды logout, либо сочетанием клавиш Ctrl+D, которое сразу выполнит эту команду:

Подготовка окружения

Проверьте версию Python, на котором будет запускаться бот:

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

Для создания нового бота подойдет любая версия.

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

Установите менеджер пакетов pip. Он пригодится в дальнейшем для загрузки библиотек.

В Ubuntu установка производится так:

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

Станьте пользователем bot и установите модуль virtualenv командой:

Ключ –user поставит его локально для пользователя bot.

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

Создайте новое окружение:

python – произвольное имя нового виртуального окружения
Ключ –system-site-packages задействует внутри окружения модули, уже установленные в системе.

И активируйте его:

Выйти из окружения можно с помощью команды deactivate:

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

Регистрация бота

Создание любого бота начинается сообщения отцу ботов в телеграме — @BotFather.

Он может управлять всеми существующими ботами, с помощью множества команд. Их список в любой момент можно вызвать командой /help

Для создания нового бота отправьте команду /newbot. После ответов на пару вопросов бот будет создан, а отец ботов пришлёт токен. Его нужно будет указывать в коде для взаимодействия с BotAPI.

Токен для каждого бота уникален. Нельзя, чтобы он попал в открытый доступ. Однако если это произошло, его всегда можно сменить через ботопапу командой /revoke.

Так будет выглядеть диалог создания бота:

Создание бота

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

Создайте директорию для бота, в ней будут все файлы проекта:

В директории создайте конфигурационный файл, в котором будут храниться некоторые данные проекта, например, токен:

Помимо vim можно использовать vi или nano. Далее добавьте в файл токен, в виде такой строки:

И добавьте в него такой код:

После этого выполните 3 команды друг за другом. Первая перезапустит менеджер служб, вторая включит демона, третья — запустит бота:

Проверить, что бот работает, можно командой:

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

Самое важное здесь — состояние бота, в строке «Active». Если бот вдруг остановился, его можно снова запустить:

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

Чтобы отключить автоматический перезапуск бота, нужно его остановить и отключить демона:


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *