Эхо-бот в 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) и проверь, что он повторяет сообщения. Выше — сердцевина трёх эхо-ботов курса: Telegram, ВКонтакте и Max. Напиши 2–3 предложениями, что во всех трёх осталось одинаковым, а что отличается только обёрткой. Назови хотя бы две общие вещи.

Исходный код для этого задания:

# 1. Telegram (библиотека telebot)
@bot.message_handler(func=lambda message: True)
def echo(message):
    bot.send_message(message.chat.id, message.text)

bot.infinity_polling()


# 2. ВКонтакте (библиотека vk_api)
for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW and event.to_me:
        otpravit(event.user_id, event.text)


# 3. Max (библиотека maxapi)
@dp.message_created()
async def echo(event: MessageCreated):
    await event.message.answer(event.message.text)

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

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

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

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

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

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

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

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