Делаем первого бота для нового мессенджера MAX на Python
Не прошло и недели с момента выхода нового мессенджера MAX от VK, а мы сейчас сделаем для него своего первого бота.
===
ШАГ 1. Регистрируем своего бота и получаем для него токен.
Похоже на ТГ. Пишем в поиске "MasterBot", должны увидеть в результатах официальный бот @masterbot
Выбираем команду /create, вводим имя бота по правилам (должно заканчиваться на bot). Если такой бот есть, то вас попросят ввести имя и потом покажут сообщение с токеном бота
===
ШАГ 2. Устанавливаем maxgram
На момент написания официальная библиотека от разработчиков - только под JS. А для Python нам понадобится опенсорсная библиотека maxgram.
Библиотека пока совсем новая, но поддерживает уже прием и отправку сообщений, установку подсказок и кнопки бота.
===
ШАГ 3. Делаем эхо-бота, играющего в пинг-понг
Он будет обрабатывать команды и повторять сообщения пользователя
Создаем файл, например, bot.py - работаем дальше в нем. Импортируем в него класс Bot, инициализируем бота и устанавливаем подсказки для команд бота - они всплывут, если ввести слэш (работает на мобильном клиенте)
Вместо YOUR_BOT_TOKEN используйте полученный ранее токен.
⚠ Правильнее не хранить его так в коде, конечно, а использовать файл .env, но в статье показываю только основы по самому боту
Дальше добавляем обработчики на событие присоединения к боту bot.on("bot_started") и на обработку сообщения @bot.hears("ping"), чтобы бот отвечал pong на ping
Теперь научимся повторять сообщения пользователя. Добавляем обработчик @bot.on("message_created")
Наконец, добавляем блок запуска бота
Теперь, если вы запустите получившийся python файл (python bot.py в нашем случае), то ваш бот должен уметь повторять за пользователем и играть в пинг-понг
===
ШАГ 4. Добавляем кнопки
Для этого импортируем из библиотеки класс клавиатуры и создаем нужные нам кнопки
Принцип такой: каждый список - это одна строка кнопок. Один словарь внутри списка - одна кнопка. Если несколько словарей добавить внутрь списка, то будет несколько кнопок равной ширины в одной строке. Сейчас посмотрим, как это выглядит.
Пусть клавиатура будет показываться при отправке команды /keyboard - добавляем обработчик
Если запустить сейчас бота и отправить команду /keyboard, то увидите примерно следующее
Но нужно еще обрабатывать нажатия на кнопки
ШАГ 5. Обрабатываем нажатия на кнопки
Используем @bot.on("message_callback"). Уникальные названия кнопок (которые выше задавали, как button1, button2, button3) принимаем в обработчике из context.payload, а отвечаем на нажатия с помощью context.reply_callback()
При этом специальный параметр is_current = True задает, чтобы новое сообщение показывалось путем редактирования текущего, а не через отправку нового.
Первая часть завершена. Если будет интерес, то в следующих частях сделаем того самого AI-ассистента, который показан в начале гайда на видео.
Кстати, потестить ИИ-ассистента на MAX можно прямо сейчас по ссылке - max.ru/AssistantsBot
Это обычный бесплатный чат-бот с ИИ. Но первый на MAX! Или один из первых.
Пишу о своих разработках и о том, как делаю стартап, в ТГ-канале