Отправка файла
Метод позволяет отправлять файлы в приватные или групповые чаты.
HTTP метод: POST
URL: https://botapi.messenger.yandex.net/bot/v1/messages/sendFile/
Заголовки
Authorization: OAuth <токен>
Тело запроса (multipart/form-data)
| Имя параметра | Обязательный | Тип | Описание | Ограничения, значение по умолчанию |
|---|---|---|---|---|
chat_id |
Нет* | string |
ID чата, в который нужно отправить файл | Бот должен состоять в чате |
login |
Нет* | string |
Логин пользователя, которому нужно отправить файл | Бот должен состоять в чате |
document |
Да | binary data |
Содержимое файла | — |
thread_id |
Нет | integer |
Идентификатор треда (timestamp сообщения) | — |
message_id |
Нет | integer |
ID сообщения для редактирования | Сообщение должно быть из того же чата |
reply_message_id |
Нет | integer |
ID сообщения, на которое будет ответ | Сообщение должно быть из того же чата |
suggest_buttons |
Нет | SuggestButtons | Клавиатура с кнопками под сообщением | Не более 100 кнопок |
(*) Параметры chat_id и login являются необязательными, но необходимо заполнить хотя бы один из двух:
- При заполнении
chat_idфайл будет отправлен в групповой чат, заданный этим ID. - При заполнении
loginфайл будет отправлен пользователю в приватный чат.
Имя загружаемого файла берется из параметра filename заголовка Content-Disposition. Также желательно правильно задать MIME-тип файла, для правильного отображения его браузером.
Например,
Content-Disposition: form-data; name="document"; filename="doc.jpg"
Content-Type: image/jpeg
Ограничения
Ограничения аналогичны ограничениям для метода отправки текстового сообщения.
Лимит на отправку изображений через бота составляет 3 ГБ в месяц.
Результат
Результатом успешного запроса является ответ с кодом 200 и телом с JSON, где содержится информация об отправленном файле.
| Имя параметра | Обязательный | Тип | Описание |
|---|---|---|---|
ok |
Да | boolean |
Флаг успешности выполнения |
message_id |
Да | integer |
ID сообщения в чате |
file_id |
Да | string |
Идентификатор загруженного файла |
В случае ошибки возвращается соответствующий статус HTTP. Описание ошибки приходит в поле description.
| Имя параметра | Обязательный | Тип | Описание |
|---|---|---|---|
ok |
Да | boolean |
Флаг успешности выполнения |
description |
Да | string |
Описание ошибки |
Пример запроса
curl -H 'Authorization: OAuth AtXXXXXXXXXXX' -F 'login=vasya@example.org' -F 'document=@report.pdf' 'https://botapi.messenger.yandex.net/bot/v1/messages/sendFile'
Пример успешного ответа
{"ok": true, "message_id": 1647523230504005, "file_id": "<file_id>"}
Пример ответа с ошибкой
{"ok": false, "description": "Bot is not a member of the chat"}