Загрузка файлов
POST/uploads
Возвращает URL для последующей загрузки файла
Поддерживаются два типа загрузки:
-
Multipart upload — более простой, но менее надёжный способ. В этом случае используется заголовок
Content-Type: multipart/form-data. Этот способ имеет ограничения:- Максимальный размер файла: 4 ГБ
- Можно загружать только один файл за раз
- Невозможно перезапустить загрузку, если она была остановлена
-
Resumable upload — более надёжный способ, если заголовок
Content-Typeне равенmultipart/form-data. Этот способ позволяет загружать файл частями и возобновить загрузку с последней успешно загруженной части в случае ошибок
Пример получения ссылки для загрузки:
curl -X POST "https://platform-api.max.ru/uploads?type=file" \
-H "Authorization: {access_token}"
Пример загрузки файла по полученному URL:
curl -X POST "%UPLOAD_URL%" \
-H "Authorization: {access_token}" \
-F "data=@example.mp4"
Пример использования cURL для загрузки файла (вариант multipart upload):
curl -i -X POST \
-H "Content-Type: multipart/form-data" \
-F "data=@movie.pdf" "%UPLOAD_URL%"
Где %UPLOAD_URL% — это URL из результата метода в примере cURL запроса
Для загрузки видео и аудио:
-
Когда получаем ссылку на загрузку видео или аудио (
POST /uploadsсtype=videoилиtype=audio), вместе сurlв ответе приходитtoken, который нужно использовать в сообщении (когда формируетеbodyсattachments) вPOST /messages. -
После загрузки видео или аудио (по
urlиз шага выше) сервер возвращаетretval -
C этого момента можно использовать
token, чтобы прикреплять вложение в сообщение бота
Механика отличается от type = image | file, где token возвращается в ответе на загрузку изображения или файла
Прикрепление медиа
Медиафайлы прикрепляются к сообщениям поэтапно:
- Получите URL для загрузки медиафайлов
- Загрузите файл по полученному URL
- После успешной загрузки получите JSON-объект в ответе. Используйте этот объект для создания вложения. Структура вложения:
type: тип медиа (например,"video")payload: JSON-объект, который вы получили
Пример для видео:
- Получите URL для загрузки:
curl -X POST "https://platform-api.max.ru/uploads?type=video" \
-H "Authorization: {access_token}"
Ответ:
{
"url": "https://vu.mycdn.me/upload.do…"
}
- Загрузите видео по URL:
curl -X POST \
-H "Content-Type: multipart/form-data" \
-F "data=@movie.mp4" \
"https://vu.mycdn.me/upload.do?sig={signature}&expires={timestamp}"
Ответ:
{
"token": "_3Rarhcf1PtlMXy8jpgie8Ai_KARnVFYNQTtmIRWNh4"
}
- Отправьте сообщение с вложением:
{
"text": "Message with video",
"attachments": [
{
"type": "video",
"payload": {
"token": "_3Rarhcf1PtlMXy8jpgie8Ai_KARnVFYNQTtmIRWNh4"
}
}
]
}
Авторизация
access_tokenapiKey
Передача токена через query-параметры больше не поддерживается — используйте заголовок
Authorization: <token>
Токен для вызова HTTP-запросов присваивается при создании бота — его можно найти в разделе платформы MAX для партнёров Чат-бот и мини-приложение → Настроить
Рекомендуем не разглашать токен посторонним, чтобы они не получили доступ к управлению ботом. Токен может быть отозван за нарушение Правил платформы
Параметры
typeenum UploadType
Enum: "image" "video" "audio" "file"
Тип загружаемого файла
Результат
urlstring
URL для загрузки файла
tokenstring optional
Видео- или аудио-токен для отправки сообщения