Привет, коллеги! На связи ботострой на 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
Спасибо за прочтение! Жду вас в чате с предложениями по улучшению библиотеки :-)
ahdenchik
А я помогу найти контраргумент: писать под Max означает поддерживать режим
SlavaVlad
Использовать WhatsApp, Instagram, YouTube и далее по списку означает поддерживать режим
MAXH0
Безусловно... «Уверяю вас, единственный способ избавиться от драконов — это иметь своего собственного»
Не время сейчас для Ланселотов.
hellosamurai
Это другое!
kompilainenn2
Но если он пишет что-то вредоносное, для рассылки спама, например, что тогда там с режимом (и что за "режим"-то?)?
mapcuk
А вот через WhatsApp моей матери вчера мошенники звонили - серьёзное психологическое давление и надо с этим разбираться. В Max обещают мессенджер по паспорту, чтоб там было поменьше спама и мошенников, а если админы и сервера на территории РФ, то блокировать будут более оперативно.
AndronNSK
Прям методичкой пахнуло.
mapcuk
По методичке это вот так, у нас, к сожалению, ситуация была реальная. А как ещё решать проблему с мошенниками - столько грустных историй.
van_dal
Так ты молодец, не забыл комментарий в скобках у себя удалить.
Alpensin
Я такой стёб постоянно вижу. Как понять, это косяк бота или просто кто-то ради стеба или вреда разместил и распространил?
van_dal
Конечно вредители. Ради компрометации нового народного гос. мессенджера.
Surrogate
Вчера смотрел видео с Андреем Масаловичем (aka Кибердед), он там во всю нахваливал этот супер-мессенджер.
Что зацепило: он сказал что сам лично не будет в числе первых когда этот мессенджер свяжут с биометрией, ГосУслугами и т.п. Только через несколько месяцев когда починят все баги будет можно)
ahdenchik
Он киберклоун
Dandy_the_crocodile
Вот бы ещё была ситуация, когда паспортные данные не гуляют свободно по интернету, да?
van_dal
Правильно! Для спокойствия твоей матери (здоровья ей и долгих лет) нам всем необходим чебурнет по паспорту.
Okebro
Так уже ведь есть ВК, в котором вход исключительно по номеру телефона, номер которого покупается у оператора по паспорту.
Везде все что могли ограничить ограничили, когда уже станет безопасно для наших детей и пожилых людей?
FreemanIsAlive
К сожалению, мораль моралью, а деньги деньгами.
Насколько бы уродской идеей Max не был, когда режим запретит Telegram, всем придётся перейти туда принудительно. Обычные люди, конечно, останутся, тут сомнений нет, но бизнесам придётся уйти, а с учётом обязательной предустановки на телефоны, это грозит и впрямь стать WeChat.
ahdenchik
Телеграм однажды уже запрещали. В результате того запрета его аудитория только выросла
Dandy_the_crocodile
Три момента:
Качество блокировок с того момента значительно выросло (к примеру, ванильные OpenVPN и WG уже не работают);
Запрет на использование ТГ для бизнеса, где приходить со штрафами будут не к TG_id, а к вполне определенному ООО "..." с ИНН ### заставят быстро передумать о необходимости ведения аккаунта в телеграмме;
Государству всё же удобнее будет доносить полезную информацию от себя через свои каналы.
Так что ситуация 17 года вряд ли повторится. По крайней мере, этого 17 года.
Bonus2k
Про 3 пункт не понял.
van_dal
Что тут непонятного? Повестки и квитанции на штрафы прямо в МАХ прилетать будут. А также: "Ваш социальный кредит был понижен, ваша миска риса сокращается, и кошка-жена подлежит сдаче государству" )))
misha_circle
Три момента:
Появился VLESS и VMESS и пока что они позволяют водить по бороде РКН чем угодно
Бизнесы, которые перейдут в Макс - не найдут там пользователей и либо будут пересматривать маркетинговую политику, либо сосать лапу, мне проще нагуглить номер компаниии позвонить, чем ставить очевидно ущербное приложение с дыркой для майора
Информация от государства в отдельном мессенджере нам не особо-то и нужна, у них СМИ хватает для этого, госуслуги и банки в этой дырявой бочке в названием Макс - вообще не нужны дважды.
Успешно вписаться в гонку мессенджеров в 2025, даже запрещая всех конкурентов - история весьма сомнительная, когда у населения на руках по 3 впна и большинство их уже даже не вырубает - ну, удачи, РКН.
AndronNSK
Увы. Бизнесу нужно зарабатывать деньги, он уже начал суетиться и заказывать ботов под эту шляпу.
А большинству людей пофиг что там за мессенджер, лишь бы сообщения доставлялись...
А некоторые (их много, кстати, не только здесь в клмментах, но даже и в моём окружении) даже рады повторять методичку бесплатно.