Files
MAX/docs/max-api/03-objects.md
root 7cd3ccf21c MAX bot + n8n: webhook, нормализация, меню, доки, схемы БД
- register_max_webhook.py, fetch_schema.py
- n8n-code-node-max-normalize.js (max_id, callback из callback.user, contact из vcf_info)
- n8n-code-add-menu-buttons.js (меню с callback, request_contact, Главное меню)
- docs: max-webhook, max-curl-http-request, max-api (форматы, кнопки, контакт), clpr vs sprf
- README, SITUATION, схемы sprf_ и clpr_, .gitignore

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 09:23:51 +03:00

6.2 KiB
Raw Permalink Blame History

Объекты Max Bot API

Update

Событие, приходящее в Long Polling или на Webhook.

Поле Тип Описание
update_type string Тип события, например message_created, message_callback
timestamp int64 Unix-время события
message Message Сообщение (для message_created и др.)
user_locale string Язык пользователя (IETF BCP 47), только в диалогах

Для событий из группового чата или канала бот должен быть назначен администратором.

Пример:

{
  "update_type": "message_created",
  "timestamp": 0,
  "message": { ... },
  "user_locale": "ru"
}

При нажатии кнопки приходит тип message_callback; в объекте есть данные callback (в т.ч. callback_id для POST /answers).


NewMessageBody

Тело сообщения при отправке (POST /messages) или обновлении (POST /answers и т.п.).

Поле Тип Описание
text string Текст до 4000 символов
attachments AttachmentRequest[] Вложения (inline_keyboard и др.)
link NewMessageLink Ссылка на сообщение
notify bool Уведомлять участников (по умолчанию true)
format "markdown" | "html" Формат текста

Пример:

{
  "text": "Текст сообщения",
  "attachments": [{ "type": "inline_keyboard", "payload": { "buttons": [...] } }],
  "notify": true,
  "format": "markdown"
}

Message

Объект сообщения (приходит в Update и в ответах API). Полное описание: dev.max.ru/docs-api/objects/Message.

Поле Тип Описание
sender User Отправитель (опц.)
recipient Recipient Получатель
timestamp int64 Unix-время
link LinkedMessage Пересланное/ответное сообщение (опц.)
body MessageBody Содержимое: текст + вложения. Может быть null, если только пересланное
stat MessageStat Статистика (опц.)
url string Публичная ссылка на пост в канале (опц.)

MessageBody (входящее сообщение)

Содержимое сообщения при получении по Webhook или GET /updates. Источник: Message, POST /uploads.

Поле Тип Описание
text string Текст сообщения или подпись к медиа. До 4000 символов. Может отсутствовать (только вложение).
attachments array Вложения. Каждый элемент: { "type": "<тип>", "payload": { ... } }.

Типы вложений (attachments[].type)

По документации загрузки файлов (POST /uploads) поддерживаются типы: image, video, audio, file. Значение photo больше не используется — приходит как image.

Тип Описание Форматы (при загрузке)
image Фото/картинка JPG, JPEG, PNG, GIF, TIFF, BMP, HEIC
video Видео MP4, MOV, MKV, WEBM, MATROSKA
audio Голос/аудио MP3, WAV, M4A и др.
file Документ или любой файл Любые типы

У видео и аудио в payload приходит token (используется в т.ч. для GET /videos/{videoToken}). У image/file — в payload приходят данные файла (токен или URL после обработки сервером).

Как приходят сообщения в Webhook

  • Только текст: message.body.text — строка, message.body.attachments — пустой или отсутствует.
  • Только голос/аудио: message.body.attachments — один элемент type: "audio", payload с токеном; message.body.text может быть пустым.
  • Только видео: message.body.attachments — один элемент type: "video", payload с токеном; message.body.text — по желанию.
  • Документ/файл: message.body.attachments — элемент type: "file", в payload — данные файла; message.body.text — опционально.
  • Фото (image): message.body.attachments — элемент type: "image" (не photo), в payload — данные изображения.
  • Фото с подписью: то же, что фото, плюс message.body.text — подпись (caption).

Пример (фото с подписью):

{
  "update_type": "message_created",
  "message": {
    "sender": { ... },
    "recipient": { ... },
    "timestamp": 1234567890,
    "body": {
      "text": "Вот документ по делу",
      "attachments": [
        { "type": "image", "payload": { "token": "..." } }
      ]
    }
  }
}

Точную структуру payload для каждого типа смотри в ответах API (например, отправить боту сообщение и посмотреть тело Webhook в n8n) или в официальной документации.


User, Chat

Полный список методов и объектов — в официальной документации.