User Tools

Site Tools


chat-bots:aiogram_-_uskorjaem_v_razy_razrabotku_telegram_botov

This is an old revision of the document!


Aiogram - ускоряем в разы разработку Telegram ботов

Д/З

Reading assignment (прочитать и понять)

Если ссылки с документацией aiogram не открываются, то используйте VPN или оффлайн PDF — docs-aiogram-dev-en-3.23.0.pdf

Практика (для зачета)

Реализовать простейший echo-бот с использованием aiogram

  1. Используем свой github репозиторий, в котором делали предыдущие Д/з (Pizza Bot и т.д.)
  2. Создаем новый git бранч c названием 12-aiogram, переключаем git на эту новую ветку
  3. Удаляем все файлы и каталоги от Pizza Bot: domain, infrastructure, tests, handlers и т.п. Оставляем только структуру папок, Dockerfile, Makefile и т.п.
  4. В requirements.txt добавляем aiogram, удаляем неиспользуемые библиотеки (например asyncpg, aiohttp)
  5. Весь код echo бота реализуем в одном файле bot/main.py
  6. Бот должен быть асинхронным (использовать asyncio), обновления получать при помощи Long Polling встроенный в aiogram. Использовать один Dispatcher для обработки событий и middleware.
  7. Добавить обработчик для message.text → в ответ на этой событие, бот отвечает тем же текстом, что получил
  8. Добавить обработчик для message.photo → в ответ бот отправляет ту же картинку, что получил
  9. Добавить middleware для логирования в консоль тела всех без исключения updates.

P.S. смотри пример реализации в видеозаписи с лекции.

Процесс сдачи

  1. (студент): напишите в ТГ преподавателю одно сообщение, содержащее текст:
    1. Для сдачи Д/з aiogram
    2. Ссылка на гит с исходным кодом бота, сразу на нужный git-бранч (12-aiogram)
  2. (преподаватель) проверяет наличие зеленой галочки на гитхабе, делает код ревью, при необходимости задает дополнительные вопросы.
  3. (преподаватель) отправляет с ТГ личку студенту сообщение “ФИО ✅ 🔟+2️⃣”
  4. (студент) заходит на страницу успеваемости и проверяет корректность своей успеваемости.
chat-bots/aiogram_-_uskorjaem_v_razy_razrabotku_telegram_botov.1765442370.txt.gz · Last modified: by olegsklyarov