SendFileByUpload#
Метод предназначен для отправки файла, загружаемого через форму (form-data).
В ответе Вы получите ссылку на загруженный файл.
Сообщение добавляется в очередь на отправку.
Скорость отправки сообщений из очереди устанавливает интервал отправки сообщений.
Для метода используются ограничения на частоту запросов в секунду.
Срок хранения файлов 24 часа.
Запрос#
Для отправки файла требуется выполнить запрос по адресу:
{{mediaUrl}}/waInstance{{idInstance}}/sendFileByUpload/{{apiTokenInstance}}
Для получения параметров запроса mediaUrl, idInstance и apiTokenInstance обратитесь к разделу Перед началом работы.
Параметры запроса#
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
chatId | string | Да | Идентификатор чата |
file | file | Да | Отправляемый файл |
fileName | string | Нет | Название файла. Должно содержать расширение файла. Требуется использовать кодировку UTF-8 без BOM. Например: test.jpg |
caption | string | Нет | Описание под файлом. Максимальная длина описания - 1024 символа. |
Время на отправку файла
Отправка файлов происходит в несколько этапов:
- Получение файла
- Запрос на отправку файла в 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);