Перейти к содержанию

SendFileByUpload#

Test Postman

Метод предназначен для отправки файла, загружаемого через форму (form-data).
В ответе Вы получите ссылку на загруженный файл.

Сообщение добавляется в очередь на отправку.
Скорость отправки сообщений из очереди устанавливает интервал отправки сообщений.

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

Срок хранения файлов 24 часа.

Запрос#

Для отправки файла требуется выполнить запрос по адресу:

POST
{{mediaUrl}}/waInstance{{idInstance}}/sendFileByUpload/{{apiTokenInstance}}

Для получения параметров запроса mediaUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.

Параметры запроса#

Параметр Тип Обязательный Описание
chatId string Да Идентификатор чата
file file Да Отправляемый файл
fileName string Нет Название файла. Должно содержать расширение файла.
Требуется использовать кодировку UTF-8 без BOM. Например: test.jpg
caption string Нет Описание под файлом. Максимальная длина описания - 1024 символа.

Время на отправку файла

Отправка файлов происходит в несколько этапов:

  1. Получение файла
  2. Запрос на отправку файла в Telegram

Время на отправку файла зависит от размера файла, скорости получения файла и обработки файла Telegram. В зависимости от данных факторов время на отправку файла может меняться от 1 до 20 секунд.

Ответ#

Поля ответа#

Поле Тип Описание
idMessage string Идентификатор отправленного сообщения
urlFile string Ссылка на файл

Пример тела ответа#

{
    "idMessage": "1769676078000",
    "urlFile": "https://mediaout-4100.storage.yandexcloud.net/41004000000/5eedf7a7878e691d093.jpg"
}

Ошибки#

Перечень общих для всех методов ошибок смотрите в разделе Стандартные ошибки

Код HTTP Идентификатор ошибки Описание
400 Bad Request
Validation failed
Ошибка валидации
400 file should not be empty Пользователь отправил пустой файл. Загружаемый файл не должен быть пустым.

Примеры кода#

import requests

url = "{{mediaUrl}}/waInstance{{idInstance}}/sendFileByUpload/{{apiTokenInstance}}"

payload = {
    "chatId": "10000000",
    "caption": "Описание"
}
files = [
    ("file", ("window.jpg", open("C:/window.jpg","rb"),"image/jpeg"))
]
headers= {}

response = requests.post(url, data=payload, files=files)

print(response.text.encode('utf8'))
curl --location '{{mediaUrl}}/waInstance{{idInstance}}/sendFileByUpload/{{apiTokenInstance}}' \
--form 'chatId="10000000"' \
--form 'file=@"/Users/you/files/file.jpeg"' \
--form 'fileName="file.jpg"'
var restTemplate = new RestTemplate();
var requestUrl = new StringBuilder();
requestUrl
    .append({{mediaUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/sendFileByUpload/")
    .append({{apiTokenInstance}});

var headers = new HttpHeaders();
headers.setContentType(MediaType.MULTIPART_FORM_DATA);

var form = new LinkedMultiValueMap<>();
    form.add("chatId", "10000000");
    form.add("file", new FileSystemResource(new File("/Users/you/files/file.jpeg")));
    form.add("fileName", 1763115112.jpg);
    form.add("caption", "Описание");

var requestEntity = new HttpEntity<>(form, headers);

var response = restTemplate.exchange(requestUrl.toString(), HttpMethod.POST, requestEntity, String.class);
System.out.println(response);
var file = new File("/Users/user/Desktop/fileExample.jpeg");
var requestUrl = new StringBuilder();
requestUrl
    .append({{mediaUrl}})
    .append("/waInstance").append({{idInstance}})
    .append("/sendFileByUpload/")
    .append({{apiTokenInstance}});

var form = new HashMap<String, Object>();
    form.put("chatId", dto.getChatId());
    form.put("file", dto.getFile());
    form.put("fileName", dto.getFileName());
    form.put("caption", dto.getCaption());

var response = Unirest.post(requestUrl.toString())
    .fields(form)
    .asString();

System.out.println(response);