Привет, коллеги! На связи ботострой на aiogram

Немного предыстории

По своему опыту я привык работать с aiogram — это удобный и отлаженный фреймворк для Telegram-ботов с большим сообществом и обширной документацией. В aiogram удобно организовывать обработку команд, создавать сложные состояния, работать с inline-клавиатурами и встроенными механизмами.

Когда начал знакомиться с мессенджером MAX, я подумал, а почему бы не попробовать написать под него модуль для разработки чат-ботов на Python? Надоело каждый день делать/дорабатывать ботов для телеграмма, захотелось приключений. Приступил к работе, результат: maxapi, мой первый модуль и я хочу вас с ним познакомить на примере long polling бота!

На старт! Создаем бота в MasterBot

Запускаем бота, отправляем /create

Просит ник для бота, отправляем

Ну и наконец: отправляем имя для бота

Копируем токен на будущее, идем дальше. Открываем консоль, устанавливаем библиотеку maxapi:

pip install maxapi

Создаем скрипт с названием и расширением bot.py, прописываем импорты

import asyncio
import logging

from maxapi import Bot, Dispatcher, F
from maxapi.types import MessageCreated

Настраиваем логгирование

logging.basicConfig(level=logging.INFO)

Инициализируем Bot, заменяем 'тут_ваш_токен' на токен из созданного бота MasterBot

bot = Bot('тут_ваш_токен')
dp = Dispatcher()  

Делаем свой первый асинхронный обработчик событий, в данном случае принимает новое сообщение с фильтром если есть текст, отвечая методом.answer() класса Message

@dp.message_created(F.message.body.text)
async def echo(event: MessageCreated):
    await event.message.answer(f"Повторяю за вами: {event.message.body.text}")
@dp.<тип_события>(<фильтры>)
async def <имя_функции>(event: <тип_события>):
    ...
  • dp — экземпляр Dispatcher

  • <тип_события> — тип события (в данном случае message_created)

  • <фильтр> — условие MagicFilter, по которому срабатывает хендлер (в данном случае наличие текста в сообщении)

  • event — объект события с данными (в данном случае MessageCreated)

Создаем асинхронную функцию для запуска бота в которой вызываем функцию для запуска long polling, передав в качестве аргумента экземпляр бота

async def main():
    await dp.start_polling(bot)

Создаем проверку на "самостоятельность" скрипта и внутри неё вызываем наш main()

if __name__ == '__main__':
    asyncio.run(main())

Готово! Запускаем нашего бота из консоли

python main.py

Пишем боту. Всё работает!

Полный код эхо-бота

import asyncio
import logging

from maxapi import Bot, Dispatcher, F
from maxapi.types import MessageCreated

logging.basicConfig(level=logging.INFO)

bot = Bot('тут_ваш_токен')
dp = Dispatcher()


@dp.message_created(F.message.body.text)
async def echo(event: MessageCreated):
    await event.message.answer(f"Повторяю за вами: {event.message.body.text}")


async def main():
    await dp.start_polling(bot)


if __name__ == '__main__':
    asyncio.run(main())

Заключение

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

MAX

Telegram

Спасибо за прочтение! Жду вас в чате с предложениями по улучшению библиотеки :-)

Комментарии (44)


  1. ahdenchik
    23.07.2025 09:03

    Когда начал знакомиться с мессенджером MAX, я подумал, а почему бы не попробовать написать под него модуль для разработки чат-ботов на Python

    А я помогу найти контраргумент: писать под Max означает поддерживать режим


    1. SlavaVlad
      23.07.2025 09:03

      Использовать WhatsApp, Instagram, YouTube и далее по списку означает поддерживать режим


      1. MAXH0
        23.07.2025 09:03

        Безусловно... «Уверяю вас, единственный способ избавиться от драконов — это иметь своего собственного»

        Не время сейчас для Ланселотов.


      1. hellosamurai
        23.07.2025 09:03

        Это другое!


    1. kompilainenn2
      23.07.2025 09:03

      Но если он пишет что-то вредоносное, для рассылки спама, например, что тогда там с режимом (и что за "режим"-то?)?


    1. mapcuk
      23.07.2025 09:03

      А вот через WhatsApp моей матери вчера мошенники звонили - серьёзное психологическое давление и надо с этим разбираться. В Max обещают мессенджер по паспорту, чтоб там было поменьше спама и мошенников, а если админы и сервера на территории РФ, то блокировать будут более оперативно.


      1. AndronNSK
        23.07.2025 09:03

        Прям методичкой пахнуло.


        1. mapcuk
          23.07.2025 09:03

          Пример поста по методичке
          Пример поста по методичке

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


          1. van_dal
            23.07.2025 09:03

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


          1. Alpensin
            23.07.2025 09:03

            Я такой стёб постоянно вижу. Как понять, это косяк бота или просто кто-то ради стеба или вреда разместил и распространил?


            1. van_dal
              23.07.2025 09:03

              Конечно вредители. Ради компрометации нового народного гос. мессенджера.


              1. Surrogate
                23.07.2025 09:03

                Вчера смотрел видео с Андреем Масаловичем (aka Кибердед), он там во всю нахваливал этот супер-мессенджер.

                Что зацепило: он сказал что сам лично не будет в числе первых когда этот мессенджер свяжут с биометрией, ГосУслугами и т.п. Только через несколько месяцев когда починят все баги будет можно)


                1. ahdenchik
                  23.07.2025 09:03

                  Андреем Масаловичем (aka Кибердед)

                  когда починят все баги

                  Он киберклоун


      1. Dandy_the_crocodile
        23.07.2025 09:03

        Вот бы ещё была ситуация, когда паспортные данные не гуляют свободно по интернету, да?


      1. van_dal
        23.07.2025 09:03

        Правильно! Для спокойствия твоей матери (здоровья ей и долгих лет) нам всем необходим чебурнет по паспорту.


      1. Okebro
        23.07.2025 09:03

        Так уже ведь есть ВК, в котором вход исключительно по номеру телефона, номер которого покупается у оператора по паспорту.

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


    1. FreemanIsAlive
      23.07.2025 09:03

      К сожалению, мораль моралью, а деньги деньгами.

      Насколько бы уродской идеей Max не был, когда режим запретит Telegram, всем придётся перейти туда принудительно. Обычные люди, конечно, останутся, тут сомнений нет, но бизнесам придётся уйти, а с учётом обязательной предустановки на телефоны, это грозит и впрямь стать WeChat.


      1. ahdenchik
        23.07.2025 09:03

        Телеграм однажды уже запрещали. В результате того запрета его аудитория только выросла


        1. Dandy_the_crocodile
          23.07.2025 09:03

          Три момента:

          1. Качество блокировок с того момента значительно выросло (к примеру, ванильные OpenVPN и WG уже не работают);

          2. Запрет на использование ТГ для бизнеса, где приходить со штрафами будут не к TG_id, а к вполне определенному ООО "..." с ИНН ### заставят быстро передумать о необходимости ведения аккаунта в телеграмме;

          3. Государству всё же удобнее будет доносить полезную информацию от себя через свои каналы.

          Так что ситуация 17 года вряд ли повторится. По крайней мере, этого 17 года.


          1. Bonus2k
            23.07.2025 09:03

            Про 3 пункт не понял.


            1. van_dal
              23.07.2025 09:03

              Что тут непонятного? Повестки и квитанции на штрафы прямо в МАХ прилетать будут. А также: "Ваш социальный кредит был понижен, ваша миска риса сокращается, и кошка-жена подлежит сдаче государству" )))


          1. misha_circle
            23.07.2025 09:03

            Три момента:

            1. Появился VLESS и VMESS и пока что они позволяют водить по бороде РКН чем угодно

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

            3. Информация от государства в отдельном мессенджере нам не особо-то и нужна, у них СМИ хватает для этого, госуслуги и банки в этой дырявой бочке в названием Макс - вообще не нужны дважды.

            Успешно вписаться в гонку мессенджеров в 2025, даже запрещая всех конкурентов - история весьма сомнительная, когда у населения на руках по 3 впна и большинство их уже даже не вырубает - ну, удачи, РКН.


    1. AndronNSK
      23.07.2025 09:03

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

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

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