Эхо-бот в Max (другой стиль)

Бот в Max заведён, библиотека стоит. Запустим эхо-бота, который повторяет сообщения, как наш самый первый в Telegram. Только код будет выглядеть непривычно. Сегодня познакомишься с другим стилем программирования, и это полезный опыт.

После урока сможешь: объяснить тему «Эхо-бот в Max (другой стиль)» и выполнить связанный с ней учебный шаг без подсказки.

Иллюстрация: бот на трёх площадках — три пустые плитки-мессенджера в ряд и робот

Сначала про новый стиль

В библиотеке Max используется асинхронный стиль. Ты увидишь незнакомые слова async и await. Если коротко и без занудства, они говорят программе «делай это, не зависая, и умей заниматься несколькими делами сразу».

Глубоко этот стиль разбирать не будем, это бонус-урок. Важно другое: суть та же, что и раньше. Есть приёмник сообщений, есть обработчик, есть отправка ответа. Просто записано иначе. Бери готовый пример, запускай, наблюдай.

Код эхо-бота

import asyncio
from maxapi import Bot, Dispatcher
from maxapi.types import MessageCreated
from config import MAX_TOKEN

bot = Bot(MAX_TOKEN)
dp = Dispatcher()

@dp.message_created()
async def echo(event: MessageCreated):
    await event.message.answer(event.message.text)

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

if __name__ == '__main__':
    asyncio.run(main())
  • bot = Bot(MAX_TOKEN) это вход по токену, ровно как TeleBot(TOKEN) в Telegram.
  • dp = Dispatcher() это диспетчер, тот, кто раздаёт сообщения по обработчикам. Считай, начальник обработчиков.
  • @dp.message_created() над функцией это табличка-обработчик, прямо как @bot.message_handler в telebot.
  • await event.message.answer(event.message.text) отправляет ответ. event.message.text это текст пришедшего сообщения, наш старый знакомый.
  • start_polling запускает прослушивание (родственник infinity_polling), а asyncio.run(main()) запускает всю async-машину.

Видишь главное?

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

Если бот в Max не получает сообщения, проверь в документации, не настроен ли у него вебхук, иногда его нужно отключить перед запуском прослушивания. Подробности всегда на dev.max.ru.

Запусти программу, напиши боту в Max. Он повторит сообщение. Твой бот теперь живёт уже на трёх площадках: Telegram, ВКонтакте, Max. И ты своими глазами увидел, что граница между ними условная.

Контрольный вопрос. В асинхронном стиле Max перед объявлением функции-обработчика пишут слово ____ def. Напиши это слово.

Подсказка: ____ def …: и await внутри.

Онлайн-проверка ответа появится позже

Задание. Запусти эхо-бота в Max из урока (токен в config.py), проверь, что бот повторяет сообщения. Сравни три мессенджера: напиши, что во всех трёх осталось одинаковым.

Подсказка: Скопируй пример, подставь свой MAX_TOKEN через config. Общее у трёх платформ — принцип «получил сообщение, разобрал, ответил».

✅ Готово, если: ты ввёл(а) верный ответ, и онлайн-проверка его приняла.

Онлайн-проверка ответа появится позже

Зачёт (бонус), если:
✅ эхо-бот заведён в Max и повторяет твои сообщения;
✅ ты написал, что во всех трёх мессенджерах осталось одинаковым.

Это бонус — он не обязателен для завершения курса. Главный финал впереди: свой бот-проект.

Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева