В декабре 2024 я запустил антиспам-бот для Макс — по той же схеме, что уже годами работает в Telegram. Через месяц платформа удалила бота без объяснений. Поддержка отвечала: «работаем над вашим вопросом, ждите». Досудебная претензия заказным письмом — разблокировка и ответ в духе «вы согласились с правилами при регистрации».
Если вы разработчик ботов и думаете зайти в Макс — расскажу историю моей разработки в МАКс. В декабре 2025 я перенес алгоритмы из своего антиспам бота в Телеграм в МАКС, много пришлось менять, т.к. API сильно отличается, и запустил его в работу.
31 января 2026 MAX удалил профиль антиспам-бота без письма и без причины. Просто бота удалили, при этом в Макс-бизнес он показывался как работающий. Десять дней писем в поддержку — один ответ "мы разбираемся, ожидайте". 17 февраля отправил досудебную претензию, через несколько дней после доставки моей претензии бот снова появился в списке, но ещё неделю на любую команду API отвечал ошибкой. Пишу это не как рекламу MAX и не как войну с MAX — просто зафиксировать, что перенос бота из Telegram сюда оказался не «ещё один webhook», а отдельная головоломка и техническая и юридическая. Поделюсь двумя своими разработками: антиспам (перенос TG-логики) и «Почтальон» (мост Макс ↔ Telegram), который родился уже после блокировки.
Кто я и зачем эта статья
Это моя первая публикация на Хабре — прошу не судить строго. Разработкой занимаюсь больше 40 лет; последний год в основном пишу ботов для Макс. Отправил в поддержку несколько сотен тикетов — большинство закрыли с сообщением «Ваш вопрос закрыт» и без видимых изменений в API, часть чинили оперативно.
В арсенале три бота в Макс: антиспам, «Почтальон» (мост Макс ↔ Telegram) и розыгрыши призов. Розыгрыши здесь не разбираю — другая предметная область. Фокус на том, что полезно коллегам-разработчикам.
Стоит ли вообще лезть в Макс в 2026 году
Короткий баланс без маркетинга платформы. Лезть в MAX имеет смысл, если вам нужны живые пользователи, здесь "голубой океан" возможностей, мало конкурентов, но вы готовы к тому, что документация врёт, а бота могут выключить и "включить" его будет крайне сложно. Ну а поддеркжка, она как и в Телеграмм, почти отсутствует. Если нужен предсказуемый API — я бы пока не переносил сюда единственный источник дохода.
Вывод, с которым живу: Макс — поле для тех, кто готов к запасным каналам, подробным логам и тому, что платформа может откатить месяц работы одним щелчком. Если вам нужна предсказуемая экосистема уровня Telegram Bot API 9.x — пока рано ставить всё на Макс.
Базовая дисциплина: один webhook — один запрос
Прежде чем про ботов — про архитектуру. У меня все боты устроены одинаково:
HTTP-запрос → webhook.php → обработка → exit
Никаких «долгоживущих» PHP-процессов между событиями. Каждый webhook — чистый контекст. Флаги вроде «удалить сообщение при следующем update» живут только внутри текущего запроса.
Для Макс, где события приходят пачками и не всегда предсказуемо, это не академический совет, а способ не словить гонки и «залипшее» состояние между вызовами.
Кейс 1: антиспам — когда переносишь проверенную TG-логику
Задача
В Telegram мой user_ban работает по принципу «установил и забыл»: эвристики по имени, ссылкам, языку, флуду, массовым рассылкам — без ручных списков стоп-слов. Порт в Макс выглядел прямолинейно: тот же webhook, бан/мут, уведомления админам в личку.
Где TG и Макс расходятся на практике
В Telegram я привык: deleteMessage либо сработал, либо вернул понятный код ошибки. В MAX на одном и том же chat_id удаление то проходило, то нет — при тех же правах бота в интерфейса админа. А ещё "феничка" MAKC меня радует 6й месяц: бот может доавить пользователя в любой чат без его согласия... или не добавить, причем однозначного ответа почему это происходит или не происходит поддержка не знает!
Конкретные примеры из продакшена:
Права админа — бот добавлен, формально админ, но отдельные операции (удаление, бан) ведут себя иначе, чем в TG. Приходилось проверять не «что написано в документации», а «что вернул API на этом
chat_id».
А Вы могли предположить что право в канале "Редактировать чужие посты" на самом деле нужно чтобы бот мог править собственные посты?!Сырой webhook — писать в лог всё что приходит, максимально подробно. Да, лог огромный, лишние ресурсы, но иначе потом ни в поддержку не напишешь, ни сам нге поймешь.
Уведомления нескольким админам — в больших бесплатных чатах (≥10 участников) рассылать всем админам каждый mayBe-спам — убить личку и выйти за лимиты API. Пришлось ввести одного модератора уведомлений (
/setNotify): команды модерации доступны всем админам, а авто-уведомления — одному слоту (или в чат админов).Бан пользователя — В МАКС это не совсем БАН! Пользователь может снова вступить по ссылке приглашению (той самой публичной по котрой все вступают) или его может добавить любой участник!.
Разбан пользователя — В МАКС это самая большая непредсказуемость! У меня накопилось два десятка пользователей, которых невозможно разбанить (Тикет есть давно, ТП о них знает и ничего не может сделать)
Нет частичных и временных ограничений пользователя - приходится всё эмулировать, чтобы пользователя не удалять из чата, а только запретить ему писать.
История с удалением — что запомнить разработчику
Не буду раздувать юридическую часть. Инженерные выводы:
не держите единственную точку контакта с пользователями внутри платформы;
логируйте всё, что может понадобиться при разборе;
имейте план Б на случай удаления бота — у меня он стал вторым продуктом (см. кейс 2).
Кейс 2: «Почтальон» — Второй бот я писал уже для себя
Откуда взялось
После блокировки Телеграм в России я оказался в ситуации, знакомой многим: Telegram недоступен или режется, Макс — работает. Все контакты в Телеграм. Нужно читать личку Telegram и отвечать так, чтобы собеседник видел ответ в том же диалоге TG.
Так появился «Почтальон»: пересылка Макс ↔ Telegram с ответами из Макс обратно в исходный диалог.
Модель данных (суть)
В БД — таблица пересылок. Каждая строка — направление потока, не «настройка бота» абстрактно:
Режим 0 (⇢): Макс → Telegram — посты из канала Макс в группу TG Режим 1 (⇠): Telegram → Макс — входящие из TG-группы в личку Макс Режим 2 (⇄): обе стороны — чат Макс ⟷ чат TG
Отдельный сценарий — автоматизация профиля Telegram (Настройки → Аккаунт → Автоматизация чатов): вся входящая переписка профиля уходит в личку Макс; «Ответить» в Макс возвращает текст клиенту в TG.
Главный источник багов у новичков: путаница, кто такой tg в строке связки — это не id клиента, а id группы/канала или владельца профиля.
Проблема одного слота автоматизации в Telegram
В профиле TG можно подключить только одного бота автоматизации. У корпоративных пользователей уже стоял свой автоответчик. Заменить его на «Почтальона» — потерять ответы на типовые вопросы.
Решение: встроить автоответчик в «Почтальона». Один бот:
пересылает входящее в Макс;
сразу отвечает клиенту в TG по правилам (фразы, кнопки, медиа);
опционально дописывает в пересылку:
? Автоответил: …— коллеги в Макс видят, что клиенту уже ответили.
Корпоративные клиенты не могли выкинуть старый автоответчик из автоматизации TG — пришлось вшить автоответ в Почтальона .
Общий чат вместо лички
Следующий запрос пришёл от пользователей, не от ТЗ: пересылать не в личку Макс, а в групповой чат, чтобы несколько менеджеров смотрели потоки в одном месте. Ответ из Макс уходит автору в TG — несколько менеджеров смотрят один чат в MAX, отвечают — уходит в тот же диалог TG.
Проблема с большими файлами
У Tg для пересылки больших файлов существует локальный сервер Telegram Bot API, его нужно установить на своем сервере и все запросы переадресовывать на свой сервер. У Макс такого сервера нет, но есть проблема с частыми ошибками при загрузке файлов на сервер Макс, что создает неудобства, когда пост опубликован в канале TG, а в Макс бот почтальон "пропихивает" его за 10 минут с пятой попытки.
Белые списки
Отдельный практический сценарий: периоды, когда из мессенджеров нормально работает только Макс — запасной продолжает работать.
Чеклист: что заложить до первого коммита под Макс
Лог сырого webhook — файл на диск при превышении порога или при
errorот API; в оперативный лог — ссылка, не полный JSON.Изоляция вторичных подсистем — у меня есть каталог "МАКС-Навигатор" в который публикую все чаты/каналы/ботов с которыми сталкиваются мои боты. Ошибка каталога не роняет webhook основного бота. Сначала бизнес-логика, потом всё остальное — в
try/catchили на shutdown.Не дублировать
webHookBegin()в боте с урезанным набором полей — потеряете кнопки, payload и отладку. Один вход через базовый класс.Тикеты в поддержку — не тестовая среда — писать полезно, иногда отвечают, но проблемы закрывать здесь и сейчас, не дожидаясь ответа поддержки.
Связь с пользователями вне платформы — канал, сайт, email; платформа может отключить бота без объяснений.
Сценарий «бот удалили» — что видит пользователь, как переустановить, как не потерять данные.
Один webhook = один запрос — не проектировать сброс static-state между запросами; следующий webhook — новый процесс.
Где обсуждать разработку под Макс
Если после прочтения остались вопросы по API, webhook, модерации или странным ответам поддержки — завёл чат для разработчиков, которые уже ковыряют Макс или только собираются. Там нет официальной поддержки платформы — зато есть люди, которые уже получили по зубам и могут сказать «у нас тоже так было».
Заключение
Год назад я бы сказал: перенесу антиспам за неделю. Сейчас три бота в проде, несколько сотен тикетов в ТП и один раз бота удалили молча. Если пойдёте в MAX — закладывайте терпение, логи, запасной канал связи с пользователями и не верьте, что «раз написал — дальше платформа не тронет». Остальное — в комментариях, если будут вопросы по конкретным методам API.
P.S. Подробные инструкции к описанным кейсам (документация, не реклама):
Антиспам: https://htmlweb.ru/max/anti_spam_bot.php
Почтальон: https://htmlweb.ru/max/postman.php
Боты в Макс: @id616301431999_bot (антиспам), @id616301431999_2_bot (почтальон). В Telegram: @postman_max_bot.
Буду рад конструктивной критике в комментариях, особенно от тех, кто тоже пилит под Макс.
Комментарии (41)

lazarus_net
08.06.2026 11:44О сколько раз твердили миру…
Сами себе яму копаете развивая экосистема Маха. Но бабло побеждает зло. Потом будете плакать что прибили ваш бот и бизнес умер.
Кстати что там про приватность данных и шифрование при кросс посте из маха в телеграм?

kdg22 Автор
08.06.2026 11:44Шифрование исключительно SSL, тут ничего не добавить, ни убавить. Получение данных через телеграм api сервер.

achekalin
08.06.2026 11:44Факты: частный мессанджер, за который списываются министры, который не имеет ни ченжлога, ни минимальной истории версия, ни открытого кода, но на который завязано гос-во.
ТП которого, хм, работает как хочет, и который ответственность несёт как захочет.
Который хранит данные непонятно как (точнее, понятно, непонятно, как стойко они хранятся, если до локального хранилища добрался вирус), и фото и видео в котором зачем-то перепаковываются в никому не упавший webm формат (который всё на многих сайтах, в т.ч. на госуслугах, не загрузить).
Отличный стартовый набор условий, чтобы полюбить!

legendasofizma
08.06.2026 11:44Про WEBP не очень ясно: без него мне на серверах нужно на 30% больше дисков для хранения фотчек. Так жить не выгодно

kdg22 Автор
08.06.2026 11:44Вы же когда отправляете получаете токен, дальше его используете, картинку хранить у себя больше не нужно.... Почти как в телеграм. Но с оговорками, сегодня, например, перестал работать корректно PUT для смены текста поста, он теперь теряет картинку и кнопки [Ticket: 8124051].

nitro80
08.06.2026 11:44Про WEBP не очень ясно
На работе коллеги яростно используют скаМ, им там присылают документы и прочее. Далее, эти документы надо прикреплять в некорых государственных информационных системах, а можно только jpg и pdf.
Внезапно, веб-версия этого мессенджера даёт скачать изображения только в webp.
Добавилась ручная работа: открой изображение в редакторе, сохрани в jpg.
Накидал им быстрый конвертер, но лишние телодвижения никуда не делись.

DarkHost
08.06.2026 11:44На тех, кто поддерживает своими разработками МАКС, вообще всё равно. Знал куда лезет, но все равно пришел поныть.

sergeyns
08.06.2026 11:44Аккаунт зареген в 2013 году.. за это время 3 коммента (из них 2 - про макс, и еще один - про "мир") и вот свеженькая одна статья (про макс).... и карма в плюсе...

achekalin
08.06.2026 11:44Да что вы к человеку пристали?
У меня вот знакомый купил самокат, чтобы на работу гонять. По Питеру, по дорогам. Говорит, я еду к 7:30, еще народа мало, меня не собьют.
Машина у него есть, если что. Но - воздух, "ветер в харю", если нет дождя - красота же!
Пока не сбили, да.
Что сказать ему было? "Осторожнее там!", больше ничего не придумал.
Так и тут, человек ведь нашел себе головоломку, почему нет.
А что Макс и тут себя показал "задом к юзеру", тем более, к разработчику, который бы платформу малось примирил с миром (или мир с платформой) - ок, будем знать.
Ах да, в заголовке есть "что сказать про платформу".
То и сказать

Ну вот правда, если это уже не просто чатик, а инфраструктура для бизнеса, госуслуг, ID и коммуникаций, то требования к прозрачности, changelog, SLA, модерации, апелляциям и предсказуемости должны быть совсем другого уровня.

kdg22 Автор
08.06.2026 11:44Внимательный :-)
При желании обо мне можно найти в интернете много инфы, до хабра руки никогда не доходили. Тут что называется "надолело" и попытки найти "собратьев по несчастью", может сдвинем эту .... хоть как-то, тяжко бороться в одиночестве.
Okeu
08.06.2026 11:44Старые акки либо угоняют либо (пере)покупают, поэтому не удивлюсь, если когда-нибудь и от известного автора опубликуют какой-нибудь слопный булщит для перегонки аудитории в тг, например)

kdg22 Автор
08.06.2026 11:44тьфу-тьфу-тьфу ни разу ничего у меня не угоняли. Может на опыте, а может мой опыт преподавания, в том числе информационной безопасности в вузе и звание к.т.н. помогают.....

Okeu
08.06.2026 11:44оффтоп: Воспоминание разблокировано. у меня угнали Skype сразу после того, как майкрософт его приобрела. Причем угнали именно Skype аккаунт, которым нельзя было управлять отдельно))
Таким образом я мог сидеть в скайпе, войдя через аккаунт майкрософт, и наблюдать, как мошенники пишут от моего имени, войдя со старым паролем от скайпа, который невозможно сменить)
Вспомнилось, потому что хотел написать, что у меня тоже ничего не угоняли)))

kdg22 Автор
08.06.2026 11:44Я не понимаю, негатив это ко мне и моей статье или к МАКСу в целом? Я НЕ За МАКС и не Против ТГ. Мои боты отлично работают в телеграмм, тут попытка поделиться тем что накипело и если есть с кем делиться, то писать ещё и рассказывать конкретные кейсы. Если же желание у данного сообщества только облить всё и всех кто рядом с МАКСом, то без проблем - удалю статью и буду дальше только почитывать хабр!

Okeu
08.06.2026 11:44скорее за форматирование нейронкой. Хабр завален нейротекстами, поэтому реакция теперь такая

aaron748
08.06.2026 11:44когда вступил в говно, а потом на тебя люди косятся и отходят подальше. и непонятно, чего это они.

TkachenkoD
08.06.2026 11:44может стоит иишку поменять? некоторые нейро-посты хотя-бы читабельны, а тут совсем шлак, сорри.

Bomberharris
08.06.2026 11:44Скамщики хотят постепенно нас приучить, что скам это может и не совсем хорошо, но с ним нужно учиться жить и работать. Позор скамщикам.

Vasjen
08.06.2026 11:44Вот поражаюсь иногда. Ведь Вы нашли сколько-то времени на написание приложения, логику, интеграцию с максом и т.д. Неужели не нашлось еще 2-3 часа, чтобы от себя описать свой опыт. Тема и правда интересная, как переезжать, как интегрировать, какие возможности ботов. И заголовок цепляет. А спустя 2 абзаца тупо нейрослоп, со списками, ключевыми моментами, пояснениями и выводами. И просто это читать невозможно, просто потому что ты не знаешь, это Ваши мысли упакованные в обертку нейронки, или Вы выдаете глюки / идеи / выводы нейронки за свои. И это к любой статье относится и автору.
При этом же Вы говорите, 40лет опыта, степень ктн – ну очевидно не проблема написать статью на 5-10 минут, но почему-то так не делаете.
kdg22 Автор
08.06.2026 11:44Написал сам, но нейронка так красиво предлагает "упаковать" твой текст, что думаешь: "ну давай, сделай красиво!", ан нет, её красота аудитории не заходит.
Так и с кодом, тоже постоянно после Cursor приходится рагребать завалы г..кода и думаешь, может сам быстрее бы сделал, чем после нее править..
Поудалял её красивости, сделал почти как первоначально сам написал....
Moog_Prodigy
08.06.2026 11:44Вот вы к..т.н., "40 лет в отрасли" и всё такое, наверняка почитывали и Хабр и другие профильные ресурсы, везде на которых жалобы на нейрослоп и "творческую переработку" имеются в огромном количестве, написали статью и все же несмотря ни на что закинули ее в нейронку, прекрасно понимая последствия?

zartarn
08.06.2026 11:44А чего там описывать в интеграции. Открываешь доку, там всё от и до описано. Логика всех этих ботов, тг/вк/ок/мах - плюс минус одна. Получай сообщения сам/через вебхук, читай, посылай команды. Все самое интересное обычно вне перекладывания из жсон в жсон )

KohINoor
08.06.2026 11:44В MAX на одном и том же chat_id удаление то проходило, то нет — при тех же галочках в UI админа. А ещё "феничка" MAKC меня радует 6й месяц: бот может доавить пользователя в любой чат без его согласия... или не добавить, причем однозначного ответа почему это происходит или не происходит поддержка не знает!
Нейронка код написала, а как он работает - не рассказала.

kdg22 Автор
08.06.2026 11:44Вместо "при тех же галочках в UI админа " - "при тех же правах бота в интерфейса админа" - так понятнее?
"бот может доавить пользователя в любой чат без его согласия" -
могу куском кода из лога, так понятнее:chats/-72029702648511/members?user_ids=35298845 GET []res(200): {"members":[]} // пользователь не в чатеchats/-72029702648511/members POST {"user_ids":[35298845]}res(200): {"success":false,"failed_user_ids":[35298845],"failed_user_details":[{"error_code":"add.participant.privacy","user_ids":[35298845]}]} // добавить нельзя не понятно почему
через некоторое времяchats/-72029702648511/members POST {"user_ids":[35298845]}res(200): {"success":true} // добавил
Мои тикеты в поддержку: Ticket: 4957002, Ticket: 4786157
derpymarine
08.06.2026 11:44В коде ошибки
add.participant.privacy- выглядит, как "Ограничено настройками приватности". Может там где-то закопаны в настройках флажки у пользователя? Что-то формата "Кто может добавлять меня в чаты".
kdg22 Автор
08.06.2026 11:44Да, есть такое! Есть настройки приватности пользователя и настройки приватности чата. Поддерка сначала отвечала что это сообщение из-за приватности пользователя. Снимаю им видео в котром галочек нет - они отвечают "мы передадим ваш запрос разработчикам" и с тех пор прошло 5+ месяцев!

schteinbrenner
08.06.2026 11:44Делать бота в Махе это та ещё боль. Документация не полная, не точная. Пришлось разбираться вместе с нейронкой методом проб и ошибок. Сейчас вроде работает.
Кому интересно вот https://max.ru/id391501488058_bot

NanoVHF
08.06.2026 11:44Все кто в этот махаон лезет - нахрена вы тащите это г****о сюда? Меньше народа знает про него - меньше будет пользоваться. А так, черный пиар получается - тоже пиар!

Doovoos
08.06.2026 11:44Мне больше всего нравится ID групп и ботов по ИНН человека или организации.
Ведь их так легко в таком виде запомнить. А ещё так легко нагуглить этот ИНН, кому он принадлежит
id391501488058_bot
id616301431999_bot

glorden
08.06.2026 11:44а потом мы удивляемся, а какая же сволочь делает жизнь другим людям хуже.
помогая сволочам и сам становишься сволочью. тьфу на вас.

asoneofus
08.06.2026 11:44На самом деле: ХЗ как так-то можно ... в качестве госсистемы настолько сырое и неустаканенное ... непродуманное решение. Наличе в репозитории исходников и "аудит" как-то не спасает ситуацию.
Pythonpy
нейрослопно
kdg22 Автор
Черновик набрасывал с редактором, структуру списков — да, он подсказывал. Факты (даты, тикеты, баги API, код) — мои, боты — мои, к.т.н. и 40 лет в отрасли — тоже. После ваших комментариев переписываю текст своим языком.
bambazamba
webhook.php.asm или .s было бы вообще чудесно. :)
40 лет в отрасли — тоже
Отлично выглядите для 60+