Отправка сообщений
Для корректной работы ваших чат-ботов и мини-приложений направляйте запросы на домен 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, WAV, 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"
}
]
]
}
}
]
}'
Авторизация
access_tokenapiKey
Передача токена через query-параметры больше не поддерживается — используйте заголовок
Authorization: <token>
Токен для вызова HTTP-запросов присваивается при создании бота — его можно найти на платформе в разделе Чат-боты → Перейти → Расширенные настройки → Настроить
Eсли вы верифицировали профиль и создали бота в мини-приложении «MAX для бизнеса», получить токен можно там же или в боте «MAX для бизнеса» с помощью команды Получить токен
Рекомендуем не разглашать токен посторонним, чтобы они не получили доступ к управлению ботом. Токен может быть отозван за нарушение Правил платформы
Параметры
user_idinteger <int64> optional
Если вы хотите отправить сообщение пользователю, укажите ID этого пользователя
chat_idinteger <int64> optional
Если сообщение отправляется в чат или канал, укажите ID этого чата или канала. Как получить ID — в разделе «Получение chat_id»
disable_link_previewboolean optional
Если true, сервер не будет генерировать превью для ссылок в тексте сообщения или поста
Тело запроса
textstring Nullable
до 4000 символов
attachmentsAttachmentRequest[] Nullable
Вложения сообщения. Если поле равно null, изменений не произойдет. Если массив пуст, все вложения будут удалены
linkobject NewMessageLink Nullable
Ссылка на сообщение
notifyboolean optional
По умолчанию: true
Если false, участники чата не получат push-уведомления. Для каналов необходимо отправлять запрос с notify = true или без этого поля, т.к. каналы не подразумевают отправку постов без push-уведомлений
formatenum TextFormat Nullable optional
Возможные значения в enum: "markdown" "html"
Если установлен, текст сообщения будет форматирован данным способом. Для подробной информации загляните в раздел Форматирование
Результат
messageobject Message
Содержит общую информацию о сообщении в чате или посте в канале: данные об отправителе и получателе, время создания сообщения, содержимое (текст и вложения), контекст связи с другими сообщениями (ответ или пересылка), а также публичную ссылку и статистику для постов в каналах
Возвращается в ответ на вызовы методов группы /messages и /chats/{chatId}/pin