Введение
Ну вот наконец-то и начинается цикл статей по непосредственному написанию логики работы Telegram бота. Начнём погружение с достаточно тривиальной задачи ( примерно как “Hello, World!” на новом языке программирования), написание эхо бота.
Но для начала немного теории!
Немного теории
Эхо-бот представляет из себя простого бота, задача которого возвращать пользователю все отправленные им сообщения.
На этом с теорией всё, переходим к практике!
Установка библиотеки
Для написания нашего первого серьёзного проекта будем использовать, как уже догадались, библиотеку aiogram версией 2.25.1
(Note: здесь и в дальнейших статьях я буду все примеры кода запускать в IDE PyCharm и использовать версию Python 3.9)
Профессионалы могут в своей любимой IDE в терминале ввести команду pip install aiogram==2.25.1
А для тех, кто только учится, необходимо:
- Нажать сочетание клавиш Ctrl+Alt+S
- Найти меню Project: “ИмяПроекта” и нажать на Python Interpreter
- Следуем подсказкам 1-2-3
И теперь можно приступать к работе!
Set up конфигурация бота
Давай напишем самое минимальное, что необходимо будет абсолютно в каждом проекте.
- Импортируем необходимые файлы из библиотеки aiogram
- Создаём переменную и присваиваем ей значение токена бота (Токен это индивидуальный API ключ, который присваивается каждому боту и необходим для взаимодействия программы с ботом)
- Создаём объекты бота и диспетчера. Объекту bot передается в качестве аргумента токен бота, а объекту dp в качестве аргумента передается объект bot.
- Используем конструкцию if __name__ == “__main__”: для запуска текущего файла напрямую. Это так называемая точка входа работы бота. Для запуска постоянного опроса входящих данных со стороны пользователя, используем операцию выполнения: executor.start_polling(dispatcher=dp). В качестве аргумента передаем нашего диспетчера.
-
Теперь подошли к самому интересному. Обработка хэндлера сообщений. По своей сути это очередь сообщений, которые бот получает от пользователя. Для их создания будем использовать декоратор. Если не знаешь, что это за страшное слово, то самое время пройти курс Python с нуля , где сможешь узнать это и многое другое! Хэндлер сообщений пишется следующим образом -> @dp.message_handler(). За ним в обязательном порядке будет следовать асинхронная функция, в которой будет описан непосредственно функционал, который будет выполняться, после вызова текущего хэндлера.
async def echo_message(message: types.Message): Функция должна принимать аргумент с аннотацией типов types.Message, чтобы мы могли взаимодействовать со входящей информацией от пользователя. Для ответа ботом на сообщения напишим конструкцию:
await message.answer(text=message.text) Метод answer отвечает пользователю текстом, который был указан в аргументе text.
message.text содержит в себе сообщение, отправленное пользователем боту.
В следующих статьях более глубоко изучаем аргумент message, какие возможности он представляет, и что хранит в себе.
В итоге должна получится следующая программа
Бежим проверять как она работает.
Запускаем скрипт, переходим в диалоговое окно с ботом.
Видим, что при отправке сообщения, в ответ нам приходит тоже самое. Это и есть эхо бот!
Заключение
Вот и положено начало пути разработки ботов. Дальше нас ждёт много увлекательной и интересной информации.
Исходники скрипта я загружу на свой GitHub, откуда без проблем можно будет скачать и проверить как работает бот, только не забудь добавить свой API токен.