Перейти к содержимому

Как запустить бота через консоль python

  • автор:

Как запустить бота

Разместить можно и не на хостинге, а локально, но тогда бот будет работать только тогда, когда у тебя запущен бот (aka включен комп). Например, можешь скопировать код бота в любой редактор кода (например, PyCharm или VS Code) и в консоли пишешь python3 namebot.py , заменив namebot.py на название файла бота. Перед этим нужно установить на ПК библиотеки, которые указаны в начале кода.

На хостинге флоу по запуску примерно такой же, но для запуска бота нужно будет создать screen (модуль, который создаёт параллельные рабочие столы) – тут уже погугли.

Как запустить Python Telegram бота на VPS

Как запустить Python Telegram бота на VPS

Приветствую всех. Из этой статьи вы узнаете как запустить Telegram бота на виртуальном сервере, и настроить службу для его авто запуска и перезапуска.

Телеграм бот

#main.py import telebot bot = telebot.TeleBot("ТОКЕН") @bot.message_handler(func=lambda message: message.text.lower() in ['привет', 'здравствуйте']) def send_welcome(message): bot.reply_to(message, "Здравствуйте!") @bot.message_handler(func=lambda message: True) def echo_all(message): bot.reply_to(message, 'Я тебя не понимаю(') bot.infinity_polling()

Виртуальный сервер

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

Как запустить Python Telegram бота на VPS

Подключение к виртуальной машине

После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.

Как запустить Python Telegram бота на VPS

Для этого можно использовать программу PuTTY или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:

ssh root@213.139.209.81

И введите пароль который вы указали при создании VPS.

Подготовка сервера

После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.

sudo apt update sudo apt upgrade

Загрузка и запуск бота

Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.

cd /home mkdir ramziv_bot cd ramziv_bot

Зайдите панель управления VPS и откройте Файловый менеджер.

Как запустить Python Telegram бота на VPS

Загрузите файлы вашего проекта на сервер, в моем случаи это только один файл main.py .

Как запустить Python Telegram бота на VPS

Установите зависимости вашего проекта, и запустите бота.

Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.

pip install pyTelegramBotAPI python3 main.py 

Теперь перейдите в Телеграм и протестируйте работу.

Как запустить Python Telegram бота на VPS

Авто запуск и перезапуск телеграм бота

Создайте systemd службу для бота.

sudo nano /lib/systemd/system/ramziv_bot.service

С конфигурацией:

[Unit] Description=Ramziv - Telegram Bot After=syslog.target After=network.target [Service] Type=simple WorkingDirectory=/home/ramziv_bot/ ExecStart=/usr/bin/python3 /home/ramziv_bot/main.py RestartSec=60 Restart=always [Install] WantedBy=multi-user.target

Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.

Выполните эти две команды что бы запустить службу.

sudo systemctl enable ramziv_bot sudo systemctl start ramziv_bot

Ваш бот запушен. Перейдите в Телеграм и убедитесь в этом.

Заключение

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

sudo journalctl -u ramziv_bot.service #Вывод #Jun 13 12:35:31 objmnuqxoa python3[1069]: File "/home/ramziv_bot/main.py", line 7, in send_welcome #Jun 13 12:35:31 objmnuqxoa python3[1069]: number = 1/0 #Jun 13 12:35:31 objmnuqxoa python3[1069]: ZeroDivisionError: division by zero
Комментарии
Tima

14 ноября 2023

Спасибо, за интересную статью. Помог. Часть с развёртыванием бота понятная и чёткая, мне нравится.

Как загрузить Telegram бота на хостинг

Telegram является одним из самых популярных мессенджеров в мире: каждый месяц 700 миллионов пользователей используют его для общения, управления своими проектами и бизнесом. Важной функцией Телеграма (ТГ) считается возможность создания чат-ботов — виртуальных помощников, которые могут автоматизировать взаимодействие с клиентами, разгрузить службу поддержки, обеспечить быстрый и удобный для аудитории доступ к информации. Однако, чтобы ваш телеграм-бот работал круглосуточно, необходимо разместить его на сервере у провайдера хостинга. В статье поэтапно рассказываем, как поставить бота на хостинг и настроить сервер, чтобы организовать его бесперебойную работу.

Пошаговая инструкция, как запустить бота на хостинге

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

Как загрузить Telegram бота на хостинг.

Изображение от redgreystock на Freepik.

Выбор хостинга для телеграм-бота

Выбирая, где разместить своего чат-бота, следует обращать внимание на возможности и ресурсы, которые поставляет хостинг-провайдер. Установить и запустить телеграм-бота можно и бесплатно: например, через облачный сервис Heroku. Но бесплатный хостинг крайне ограничен и часто небезопасен. Если у вас простой бот, который отвечает на триггеры заготовленными репликами, его можно залить на обычный shared hosting. Главное, найти тариф с поддержкой Python и Telegram API.

Если же ваш помощник основан на нейросети и ожидается большой поток клиентов, лучше остановиться на аренде VPS (Virtual Private Server). На виртуальном сервере подключение будет стабильнее за счет изолированности вычислительных мощностей, а кроме того, VPS легче масштабировать. Вам не понадобится сайт и домен, чтобы его арендовать: подключиться можно будет по выделенному IP-адресу.

Настройка сервера для telegram-бота

Допустим, вы заказали подходящий сервер и удаленно подключились к нему по SSH. Прежде чем размещать на нем файлы нашего бота, нужно установить зависимости, которые потребуются для его работы. В частности, это язык Python и библиотека РуTelegramBotAPI. Мы покажем, как поставить эти компоненты на примере ОС Ubuntu. Введите в терминал:

sudo apt install python3 
sudo apt install python3-pip
pip3 install pyTelegramBotAPI

Мы взяли третью версию «Питона», но если ваш бот написан на другой, то загрузите нужную. Теперь можно заливать файл на сервер.

Размещение чат-бота

Сначала создадим папку, в которой будем размещать телеграм-бота:

cd /home 
mkdir имя_папки
cd имя_папки

Где имя_папки — это придуманное вами название директории (на латинице). Команда cd позволит нам перейти в эту директорию. Далее необходимо загрузить сами файлы. Это можно сделать через сторонний FTP-клиент (например, FileZilla) или панель управления VPS/VDS, если она имеется. В любом случае вам понадобятся данные для входа на сервер: логин, пароль и IP-адрес (вы должны были использовать их, когда устанавливали SSH-подключение). Откройте выбранную программу, найдите папку с указанным именем и залейте в нее файлы телеграм-бота.

Запуск бота

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

python3 имя_файла.ру

Обычно проект телеграм-бота хранится в файле с названием main.py или bot.py. У вас он может иметь другое имя, главное, чтобы расширение было «ру».

После этой команды ваш бот будет запущен. Вы можете убедиться в этом, зайдя в Телеграм и обратившись к нему в чате. Но есть одно но: сейчас ассистент работает, как приложение. Если вы закроете консоль, куда ввели команду для запуска, чат-бот отключится. Исправим это на следующем шаге.

Настройка автозапуска телеграм-бота

Ставить нашего бота на автовыполнение мы будем с помощью менеджера systemd. Чтобы создать службу, введите команду вида:

sudo nano /lib/systemd/system/example_bot.service

Замените example_bot на собственное значение. Теперь нужно прописать конфигурацию юнита. Она может выглядеть следующим образом:

[Unit]

Description=Example — Telegram Bot \\ В переменной «Description» вы можете указать название своего бота, это просто описание, чтобы при открытии файла вы сразу поняли, к чему относятся нижеследующие параметры.

After=syslog.target 
After=network.target
[Service] 
Type=simple
WorkingDirectory=/home/имя_папки/

ExecStart=/usr/bin/python3 /home/имя_папки/имя_файла.py \\ Здесь и выше укажите названия, которые установили для директории и файла с ботом.

RestartSec=60 
Restart=always
[Install] 
WantedBy=multi-user.target

Чтобы сохранить изменения и выйти, нажмите CTRL+S и CTRL+X. Теперь остается только запустить саму службу:

sudo systemctl enable example_bot 
sudo systemctl start example_bot

Где example_bot — это название службы, которое вы указали в начале данного шага. Готово! Ваш телеграм-бот будет работать в фоновом режиме, даже когда вы отключитесь от сервера.

Заключение

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

Как создать телеграм-бота на Python

Узнайте, как создать своего телеграм-бота на Python с нуля, используя простые шаги в этой понятной статье для новичков.

Developer creating a Telegram bot using Python.

Алексей Кодов
Автор статьи
23 июня 2023 в 18:47

Создание телеграм-бота на Python — отличный способ погрузиться в мир разработки и научиться работать с API. В этой статье мы рассмотрим, как создать простого телеграм-бота, который будет отвечать на сообщения пользователей.

Шаг 1: Зарегистрировать телеграм-бота

Для начала, вам понадобится создать телеграм-бота и получить его токен. Для этого:

  1. Откройте приложение Telegram и найдите бота @BotFather.
  2. Напишите боту /newbot и следуйте инструкциям, чтобы создать своего бота.
  3. Сохраните полученный токен, он потребуется для работы с API.

Шаг 2: Установить библиотеку python-telegram-bot

Для работы с API телеграма удобно использовать библиотеку python-telegram-bot . Установите ее с помощью следующей команды:

pip install python-telegram-bot

Шаг 3: Написать код для телеграм-бота

Теперь приступим к написанию кода нашего бота. Создайте файл bot.py и напишите следующий код:

import logging from telegram import Update from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, CallbackContext # Введите токен своего бота TOKEN = "your_token_here" # Настройка логирования logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO ) logger = logging.getLogger(__name__) # Обработка команды /start def start(update: Update, context: CallbackContext) -> None: update.message.reply_text('Привет, я твой телеграм-бот! ��') # Обработка текстовых сообщений def echo(update: Update, context: CallbackContext) -> None: update.message.reply_text(f'Вы написали: ') # Главная функция def main() -> None: updater = Updater(TOKEN) dispatcher = updater.dispatcher # Регистрация обработчиков dispatcher.add_handler(CommandHandler("start", start)) dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, echo)) # Запуск бота updater.start_polling() updater.idle() if __name__ == '__main__': main()

Не забудьте заменить «your_token_here» на токен вашего бота.

Как запустить Python Telegram бота на VPS

Как запустить Python Telegram бота на VPS

Приветствую всех. Из этой статьи вы узнаете как запустить Telegram бота на виртуальном сервере, и настроить службу для его авто запуска и перезапуска.

Телеграм бот

#main.py import telebot bot = telebot.TeleBot("ТОКЕН") @bot.message_handler(func=lambda message: message.text.lower() in ['привет', 'здравствуйте']) def send_welcome(message): bot.reply_to(message, "Здравствуйте!") @bot.message_handler(func=lambda message: True) def echo_all(message): bot.reply_to(message, 'Я тебя не понимаю(') bot.infinity_polling()

Виртуальный сервер

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

Как запустить Python Telegram бота на VPS

Подключение к виртуальной машине

После того как вы создали VPS у вас откроется панель управления, где вы можете скопировать IP адрес машины и подключаться к ней по SSH.

Как запустить Python Telegram бота на VPS

Для этого можно использовать программу PuTTY или клиент OpenSSH, который входит в состав Windows 10. Для подключения по SSH выполните следующую команду:

ssh root@213.139.209.81

И введите пароль который вы указали при создании VPS.

Подготовка сервера

После того как вы подключились к серверу, выполните команды которые обновят списки, и устаревшие пакеты до последней версии.

sudo apt update sudo apt upgrade

Загрузка и запуск бота

Перейдите в каталог home и создайте папку для вашего проекта выполнив команды.

cd /home mkdir ramziv_bot cd ramziv_bot

Зайдите панель управления VPS и откройте Файловый менеджер.

Как запустить Python Telegram бота на VPS

Загрузите файлы вашего проекта на сервер, в моем случаи это только один файл main.py .

Как запустить Python Telegram бота на VPS

Установите зависимости вашего проекта, и запустите бота.

Примечание: Ubuntu 20.04 поставляется с установленной Python 3.8 из коробки, если для вашего проекта нужна другая версия, установите ее или используйте другую версию дистрибутива.

pip install pyTelegramBotAPI python3 main.py 

Теперь перейдите в Телеграм и протестируйте работу.

Как запустить Python Telegram бота на VPS

Авто запуск и перезапуск телеграм бота

Создайте systemd службу для бота.

sudo nano /lib/systemd/system/ramziv_bot.service

С конфигурацией:

[Unit] Description=Ramziv - Telegram Bot After=syslog.target After=network.target [Service] Type=simple WorkingDirectory=/home/ramziv_bot/ ExecStart=/usr/bin/python3 /home/ramziv_bot/main.py RestartSec=60 Restart=always [Install] WantedBy=multi-user.target

Нажмите CTRL+S и CTRL+X что бы сохранить и выйти.

Выполните эти две команды что бы запустить службу.

sudo systemctl enable ramziv_bot sudo systemctl start ramziv_bot

Ваш бот запушен. Перейдите в Телеграм и убедитесь в этом.

Заключение

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

sudo journalctl -u ramziv_bot.service #Вывод #Jun 13 12:35:31 objmnuqxoa python3[1069]: File "/home/ramziv_bot/main.py", line 7, in send_welcome #Jun 13 12:35:31 objmnuqxoa python3[1069]: number = 1/0 #Jun 13 12:35:31 objmnuqxoa python3[1069]: ZeroDivisionError: division by zero
Комментарии
Tima

14 ноября 2023

Спасибо, за интересную статью. Помог. Часть с развёртыванием бота понятная и чёткая, мне нравится.

Как запустить бота

Разместить можно и не на хостинге, а локально, но тогда бот будет работать только тогда, когда у тебя запущен бот (aka включен комп). Например, можешь скопировать код бота в любой редактор кода (например, PyCharm или VS Code) и в консоли пишешь python3 namebot.py , заменив namebot.py на название файла бота. Перед этим нужно установить на ПК библиотеки, которые указаны в начале кода.

На хостинге флоу по запуску примерно такой же, но для запуска бота нужно будет создать screen (модуль, который создаёт параллельные рабочие столы) – тут уже погугли.

Как написать Telegram-бота на Python: делаем ремайндер

Создаём простого бота-ремайндера в Telegram на языке Python, единственная задача которого — напоминать пользователю о важных делах.

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

Инструкция подойдет для новичков, которые знают Python на базовом уровне, пробовали писать код и установили на компьютер редактор кода.

Первый этап: подготовка проекта и развертывание окружения

Найдем в поиске Telegram BotFather — официального бота мессенджера, который создает другие боты и управляет ими. В интерфейсе выбираем /start, затем — /newbot, и следом задаем имя и адрес. В этой иструкции это будут Elbrus Reminder и elbrus_reminder_bot соответственно.

После этого BotFather пришлет сообщение с токеном и ссылкой на бот:

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

На время закроем Telegram и создадим на компьютере папку с именем проекта: например, reminder_bot. Откроем папку в среде разработки и создадим рабочий файл с понятным названием — bot.py.

Откроем терминал редактора кода и создадим для проекта новое окружение. В среде разработки с помощью команды python -m venv .venv создадим папку с окружением .venv .

Если окружение не активировалось автоматически, можно сделать это вручную, прописав путь к файлу активации в формате source .venv/bin/activate , где source — команда языка программирования Bash. Другой вариант — перезапустить среду разработки. Он работает для Visual Studio Code, но нужно предварительно принять предложение редактора привязать среду к папке проекта сразу после создания окружения.

Практика создания нового окружения под каждый проект позволяет повыстить безопасности и стабильность проекта — в окружении вы можете использовать только те библиотеки и их версии, которые требуются в проекте. Если в проекте появятся дополнительные функции, все изменения будут храниться в этом окружении. При этом оно будет изолировано от других окружений и проектов — это повысит безопасность проекта.

Второй этап: подключаем библиотеки

Проект создан и окружение готово: пора переходить к написанию кода. По правилам хорошего тона в первую очередь через import добавляем несколько предустановленных библиотек Python. При создании бота нам пригодятся logging и time , которые отвечают за определение времени и логирование сообщений.

import time import logging 

Затем добавим асинхронную библиотеку aiogram, на основе которой будет работать бот. Она, например, определяет, какое сообщение пришло, как его нужно обработать и какие порты нужны. Сначала устанавливаем ее через терминал командой pip install aiogram , а в редакторе кода пишем следующее:

from aiogram import Bot, Dispatcher, executor, types 

Из этой библиотеки нам нужны только отдельные модули и классы — все ее возможности для создания базовой версии бота не пригодятся. Поэтому вместо одиночного import использована команда from <> import <> .

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

TOKEN = "здесьбудетваштокенот от BotFather" MSG = "Программировал ли ты сегодня, <>?" 

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

Теперь создадим экземпляр класса Bot , передав ему в качестве аргумента наш токен, и экземпляр класса Dispatcher (dp), который в качестве аргумента получит bot . В результате получаем связку объекта класса bot с ключем, который привязан к боту, и диспетчера, который привязан к этому боту:

bot = Bot(token=TOKEN) dp = Dispatcher(bot=bot) 

Следующим шагом добавим конструкцию под названием декоратор ( massage_handler ) — она помогает получить из диспетчера нужный функционал. В качестве аргумента прописываем команды, которые обрабатывает декоратор — в данном случае это команда /start , которая запускает бот.

@dp.message_handler(commands=['start']) 

Под декоратором прописываем функцию, которая будет обрабатывать команду /start и определяет логику, в соответствии с которой будет работать бот. Поскольку мы работаем с асинхронной библиотекой, функция тоже должна быть асинхронной. Для этого перед указанием def добавим ключевое слово async :

async def start_handler(message: types.Message): 

Функция приветствует пользователя и обрабатывает сообщение, которое он отправляет в ответ. Из сообщения можно получить информацию о пользователе, который его прислал, время отправки и его ID.

Создаем переменную и сохраняем в ней user id :

user_id = message.from_user.id 

Затем получаем из сообщения короткое и полное имя пользователя:

user_name = message.from_user.first_name user_full_name = message.from_user.full_name 

Для того, чтобы в логах отображалась информация о пользователе, передаем в виде текста ID и полное имя, а также используем возможности библиотеки time , чтобы определить время, когда писал пользователь:

logging.info(f'  ') 

Здесь отойдем в сторону и проверим корректность работы модуля time . Сделать это можно в терминале: для этого напишем import time , а затем — time.asctime

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

await message.reply(f"Привет, !") 

Ответить пользователю в боте можно несколькими способами — в данном случае используем reply. Выше в переменной MSG мы задали стандартное сообщение: «Программировал ли ты сегодня, <>?». Зададим частоту напоминаний: семь раз каждые семь суток (60х60х24 — количество секунд в одних сутках) с момента отправки команды /start боту от пользователя:

for i in range(7): await asyncio.sleep(60*60*24) 

Затем настроим отправку сообщения с указанием имени пользователя в этом же цикле:

await bot.send_message(user_id, MSG.format(user_name)) 

Третий этап: финал

Переходим к финальной части: в конце скрипта напишем несколько строк. Они могут показаться странными для новичка, но это общепринятая практика, к которой многие программисты прибегают при разработке. В этой строке мы проверяем, равна ли переменная __name__ строке «__main__» . Это условие всегда будет True, если мы запускаем этот файл как python-скрипт через терминал:

if __name__ == '__main__': 

Теперь делаем нашего бота доступным в сети:

executor.start_polling(dp) 

Сохраняем файл. Запускаем бота в терминале, открытом в папке проекта, с помощью команды python bot.py .

Вернемся в BotFather и перейдем по ссылке, которую получили вместе с токеном. Нажимаем «Начать» — готово, бот, написанный меньше, чем в 30 строк, работает.

Так выглядит его код целиком:

import time import logging import asyncio from aiogram import Bot, Dispatcher, executor, types TOKEN = "здесьбудетваштокенот@BotFather" MSG = "Программировал ли ты сегодня, <>?" logging.basicConfig(level=logging.INFO) bot = Bot(token=TOKEN) dp = Dispatcher(bot=bot) @dp.message_handler(commands=["start"]) async def start_handler(message: types.Message): user_id = message.from_user.id user_name = message.from_user.first_name user_full_name = message.from_user.full_name logging.info(f'  ') await message.reply(f"Привет, !") for i in range(7): await asyncio.sleep(60*60*24) await bot.send_message(user_id, MSG.format(user_name)) if __name__ == "__main__": executor.start_polling(dp) 

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

Чат-боты в Telegram на Python и Aiogram: пишем первого бота

Большой гайд по работе с Aiogram на примере эхо‑бота — чат‑бота, который повторяет за пользователем его фразы. Весь код — внутри статьи.

Иллюстрация: Polina Vari для Skillbox Media

Антон Яценко

Антон Яценко
Изучает Python, его библиотеки и занимается анализом данных. Любит путешествовать в горах.

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

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

Содержание

  • Библиотеки для создания бота
  • Краткое описание Aiogram
  • Создаём эхо-бота
  • Шаг 1. Устанавливаем Python
  • Шаг 2. Создаём виртуальное окружение
  • Шаг 3. Создаём бота
  • Шаг 4. Подключаем Aiogram
  • Шаг 5. Пишем код для эхо-бота
  • Шаг 6. Запускаем бота и проверяем работу
  • Что дальше?

Библиотеки для создания бота

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

Aiogram. Современная библиотека, набирающая популярность: многие чат-боты написаны на ней. В этой и последующих статьях цикла мы будем работать именно с Aiogram. Библиотека реализует асинхронное выполнение кода, что позволяет не останавливать работу бота в ожидании ответа пользователя. Кроме того, у Aiogram есть подробная документация и большое русскоязычное комьюнити.

Python-telegram-bot. Одна из первых библиотек для создания ботов. Отличается от Aiogram синхронным подходом к работе, то есть при ожидании ответа от пользователя выполнение кода останавливается.

TeleBot. Библиотека для создания простых ботов, позволяющая работать с асинхронным и синхронным подходом на выбор. Подходит для небольших проектов. Подробнее можно узнать в документации.

Что нужно знать об Aiogram перед написанием кода

Перед тем как приступить к написанию нашего бота, остановимся подробнее на одной технической особенности Aiogram.

Как уже было сказано ранее, одно из главных достоинств библиотеки — полная асинхронность. Она использует синтаксис async/await, который позволяет программе выполнять несколько задач одновременно и эффективно управлять потоком выполнения.

Вот простой пример функции, использующей механизм async/await:

Другой плюс Aiogram — в большом наборе инструментов и хуков, которые можно использовать для добавления дополнительных функций и настроек бота. Библиотека обеспечивает полный доступ ко всем возможностям Telegram API, включая отправку и получение сообщений, управление клавиатурой, обработку медиафайлов (фотографий, видео, документов) и многое другое.

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

  • официальная документация,
  • репозиторий библиотеки на GitHub,
  • русскоязычный телеграм-чат, посвящённый Aiogram,
  • англоязычный чат, посвящённый Aiogram,
  • канал с новостями библиотеки,
  • тестовый бот на основе Aiogram.

Создаём эхо-бота

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

Для этого нам необходимо:

  • установить Python и настроить виртуальное окружение;
  • зарегистрировать бота в специальном телеграм-канале @BotFather;
  • установить библиотеку Aiogram;
  • написать код эхо-бота, связав его по API с Telegram.
Шаг 1

Устанавливаем Python

На macOS или Linux. Python установлен в эти операционные системы изначально. Чтобы проверить его наличие, откройте терминал и введите команду:

На Windows требуется установка Python. Сделать это проще всего по нашей инструкции.

Шаг 2

Создаём виртуальное окружение

После установки и проверки Python требуется установить виртуальное окружение с помощью virtualenv. Это специальный инструмент, который позволяет изолировать друг от друга проекты в разработке, независимо устанавливая для них библиотеки и пакеты. Удобно, когда вы работаете над разными приложениями одновременно.

virtualenv устанавливается через терминал:

Открываем его, жмём кнопку «Запустить» и вводим команду /newbot:

Теперь напишем название и юзернейм для нашего бота. Назовём его echo_skillbox_bot (теперь это имя занято, так что вам надо будет придумать своё). В ответ придёт наш токен, который мы будем использовать для подключения к API Telegram.

Этот токен мы сохраняем — он потребуется нам в будущем.

Шаг 4

Подключаем Aiogram

Для установки Aiogram воспользуемся менеджером пакетов PIP. Вводим в терминал:

Находим нашего бота в Telegram по имени @echo_skillbox_bot и запускаем его, нажав на кнопку Начать. В ответ на это или на команду /start нам придёт приветственное сообщение:

Попробуем написать что-то:

Как мы видим — всё работает. Бот возвращает нам наши сообщения.

Что дальше?

Расширять функциональность бота, указывая для разных команд пользователя разные ответы. Например, добавить раздел помощи, который будет появляться по команде /help. Или настроить запуск кода на виртуальном сервере, чтобы бот работал независимо от вашего компьютера.

Во второй части статьи мы добавим к нашему боту кнопки и новые возможности. Так что обязательно заходите и читайте 🙂

Больше интересного про код в нашем телеграм-канале. Подписывайтесь!

Читайте также:

  • С# для новичков: развеиваем мифы и пишем простого чат-бота
  • «Я удивился, когда написал код, а он заработал»: как живёт начинающий Python-разработчик
  • Учимся верстать: что такое CSS

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

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