Отправка сообщений
Для корректной работы ваших чат-ботов и мини-приложений направляйте запросы на доменplatform-api2.max.ruвместоplatform-api.max.ru. Также убедитесь, что добавили сертификат Минцифры в список доверенных
POST/messages
Отправляет сообщение в диалог, групповой чат или канал
Кроме текста сообщения или посты могут содержать следующие типы вложений:
-
image— изображение (JPG, JPEG, PNG, GIF, TIFF, BMP, HEIC) -
video— видео (MP4, MOV, MKV, WEBM, MATROSKA) -
audio— аудио (MP3, M4A и другие) -
file— файл для загрузки в (TXT, DOC и другие) -
sticker— стикер -
contact— контакт (данные контакта из телефонного справочника) -
inline_keyboard— сообщение или пост с кнопкой -
share— контент, прикрепленный по внешнему URL -
location— локация
Ограничения
Можно отправлять не более двух сообщений в секунду в один диалог, групповой чат или канал. При превышении этого лимита сообщения следует ставить в очередь или делать задержку перед отправкой
Пример запроса с одной кнопкой-ссылкой
Больше примеров запросов с кнопками — в разделе «Клавиатура»
curl -X POST "https://platform-api2.max.ru/messages?user_id={user_id}" \
-H "Authorization: {access_token}" \
-H "Content-Type: application/json" \
-d '{
"text": "Это сообщение с кнопкой-ссылкой",
"attachments": [
{
"type": "inline_keyboard",
"payload": {
"buttons": [
[
{
"type": "link",
"text": "Откройте сайт",
"url": "https://example.com"
}
]
]
}
}
]
}'Авторизация
Передача токена через query-параметры больше не поддерживается — используйте заголовок
Authorization: <token>
Токен для вызова HTTP-запросов присваивается при создании бота — его можно найти на платформе в разделе Чат-боты. Выберите необходимого бота и нажмите ⋮ → Настройки → значок копирования справа от поля с токеном
Если вы верифицировали профиль и создали бота в мини-приложении «MAX для бизнеса», получить токен можно там же или в боте «MAX для бизнеса» с помощью команды Получить токен
Рекомендуем не разглашать токен посторонним, чтобы они не получили доступ к управлению ботом. Токен может быть отозван за нарушение Правил платформы
Параметры
true, сервер не будет генерировать превью для ссылок в тексте сообщения или поста
Тело запроса
4000 символов
null, изменений не произойдет. Если массив пуст, все вложения будут удалены
type: video) и одно вложение с кнопками (type: inline_keyboard). Общее количество вложений не должно превышать общее ограничение — 12. Подробнее — в примерах
от 1 символа
Любой внешний URL изображения, которое вы хотите прикрепить
retval. Подробнее — в описании POST /uploads
retval. Подробнее — в описании POST /uploads
type: inline_keyboard). Передача других типов вложений совместно с контактом не поддерживается
Данные для прикрепления кнопок к сообщению Ограничения:
- Максимальное количество кнопок в ряду — 7
- Максимальное количество строк с кнопками — 30
- Если в ряду кнопки с типами:
link,open_app,request_geo_location,request_contact, то максимальное количество кнопок в ряду — 3
от 1 символа
Двумерный массив кнопок. Подробнее о типах кнопок и клавиатуре в ботах — в разделе «Клавиатура для чат-бота»
от 1 до 128 символов
Видимый текст кнопки. Чтобы он отображался полностью, рекомендуем не превышать заданное количество символов в зависимости от размещения текста: 20 символов — при 1 кнопке в ряду, 10 — при 2, 5 — при 3, 3 — при 4
до 1024 символов
Токен кнопки
2048 символов
true, отправляет местоположение без запроса подтверждения пользователя
Если false, возвращает модальное окно с дополнительным уточнением об отправке местоположения
до 1024 символов
Текст, который будет скопирован
от 1 символа
URL, прикреплённый к сообщению для предпросмотра медиавложения
Возможные значения в enum: "forward" "reply"
Тип связанного сообщения:
"reply"— ответ на сообщение или комментарий в чате или канале"forward"— пересланное сообщение в чате или канале
Для комментариев поддерживается только тип reply
По умолчанию: true
Для каналов всегда отправляйте запрос с notify = true или без этого поля. Отключить push-уведомления в каналах нельзя
В групповых чатах и диалогах, если notify = true или поле отсутствует, уведомление отобразится пользователю
При notify = false отображение push-уведомлений зависит от платформы:
- Десктоп-клиент и веб-приложение на iOS. В диалогах и групповых чатах при
notify = falseуведомления не отображаются - Приложение на Android. В диалогах при
notify = falseуведомления не отображаются. В групповых чатах приnotify = falseуведомление не отображаются, только если приложение МАХ свёрнуто или закрыто. Если приложение открыто, пользователь увидит уведомление - Веб-приложение. Управление отображением уведомлений с помощью параметра
notifyне поддержано
Возможные значения в enum: "markdown" "html"
Разметка текста сообщения. Подробнее — в разделе Форматирование
Результат
Содержит общую информацию о сообщении в чате или посте в канале: данные об отправителе и получателе, время создания сообщения, содержимое (текст и вложения), контекст связи с другими сообщениями (ответ или пересылка), а также публичную ссылку и статистику для постов в каналах
Возвращается в ответ на вызовы методов группы /messages и /chats/{chatId}/pin
Отправитель сообщения: пользователь или бот
Обратите внимание:
- Все параметры в объекте относятся к отправителю сообщения
- Объект отсутствует, если сообщение отправлено в канал
null, если тот недоступен или имя не задано
true, если это бот
Получатель сообщения: пользователь или бот (для диалога), канал или чат
Обратите внимание: все параметры в объекте относятся к получателю сообщения
Возможные значения в enum: "chat" "channel" "dialog"
Тип чата:
chat— групповой чатchannel— канал или комментарий к посту (для вызовов методов группы/comments)dialog— диалог
Возможные значения в enum: "forward" "reply"
Тип связанного сообщения:
"reply"— ответ на сообщение в чате"forward"— пересланное сообщение в чате
null, если тот недоступен или имя не задано
true, если это бот
type = forward. Как получить ID — на странице «Получение ID чата или канала»
attachment, описанных в схеме ниже
Если поле пустое или равно null, изменений не произойдет. Если массив пуст, все вложения будут удалены
expires — если он истёк, ссылку необходимо запросить повторно. Доступно в веб-клиентe и на Android
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
token, если вы пытаетесь повторно использовать одно и то же вложение в другом сообщении
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
token, если вы пытаетесь повторно использовать одно и то же вложение в другом сообщении
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
token, если вы пытаетесь повторно использовать одно и то же вложение в другом сообщении.
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
null, если тот недоступен или имя не задано
true, если это бот
от 1 до 128 символов
Видимый текст кнопки. Чтобы он отображался полностью, рекомендуем не превышать заданное количество символов в зависимости от размещения текста: 20 символов — при 1 кнопке в ряду, 10 — при 2, 5 — при 3, 3 — при 4
до 1024 символов
Токен кнопки
2048 символов
true, отправляет местоположение без запроса подтверждения пользователя
Если false, возвращает модальное окно с дополнительным уточнением об отправке местоположения
до 1024 символов
Текст, который будет скопирован
от 1 символа
URL, прикреплённый к сообщению для предпросмотра медиавложения
Тип элемента разметки. Может быть жирный, курсив, ~зачеркнутый~, подчеркнутый, моноширинный, выделенный, цитата, заголовок, ссылка или упоминание пользователя
Обратите внимание: в тексте комментариев не поддерживаются гиперссылки и упоминание пользователей
от 1 до 2048 символов
URL ссылки
@username упомянутого пользователя
null, если сообщение содержит только пересланное сообщение
attachment, описанных в схеме ниже
Если поле пустое или равно null, изменений не произойдет. Если массив пуст, все вложения будут удалены
expires — если он истёк, ссылку необходимо запросить повторно. Доступно в веб-клиентe и на Android
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
token, если вы пытаетесь повторно использовать одно и то же вложение в другом сообщении
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
token, если вы пытаетесь повторно использовать одно и то же вложение в другом сообщении
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
token, если вы пытаетесь повторно использовать одно и то же вложение в другом сообщении.
URL вложения, который возвращается в объекте Update после отправки сообщения в чат или канал
В случае с вложенным видео прямую ссылку также можно получить с помощью метода GET /videos/{-videoToken-}
null, если тот недоступен или имя не задано
true, если это бот
от 1 до 128 символов
Видимый текст кнопки. Чтобы он отображался полностью, рекомендуем не превышать заданное количество символов в зависимости от размещения текста: 20 символов — при 1 кнопке в ряду, 10 — при 2, 5 — при 3, 3 — при 4
до 1024 символов
Токен кнопки
2048 символов
true, отправляет местоположение без запроса подтверждения пользователя
Если false, возвращает модальное окно с дополнительным уточнением об отправке местоположения
до 1024 символов
Текст, который будет скопирован
от 1 символа
URL, прикреплённый к сообщению для предпросмотра медиавложения
Тип элемента разметки. Может быть жирный, курсив, ~зачеркнутый~, подчеркнутый, моноширинный, выделенный, цитата, заголовок, ссылка или упоминание пользователя
Обратите внимание: в тексте комментариев не поддерживаются гиперссылки и упоминание пользователей
от 1 до 2048 символов
URL ссылки
@username упомянутого пользователя
Коды ответов
| Код | Описание |
|---|---|
200 | Информация о созданном сообщении или опубликованном посте |
401 | Ошибка авторизации. Токен access_token указан некорректно или недействителен |
500 | Внутренняя ошибка сервера |