Ответ 1
Теперь это доступно!
https://core.telegram.org/bots/api#getfile
Ура! Это было добавлено 18 сентября:
https://core.telegram.org/bots/api
Применение:
В JSON сообщения вы получите file_id, как и раньше. Пример объекта сообщения с голосом:
{
message_id: 2675,
from: {
id: 10000001,
first_name: 'john',
username: 'john'
},
chat: {
id: 10000001,
first_name: 'john',
username: 'john'
},
date: 1442848171,
voice: {
duration: 2,
mime_type: 'audio/ogg',
file_id: 'AwADBAADYwADO1wlBuF1ogMa7HnMAg', // <------- file_id
file_size: 17746
}
}
Через API getFile теперь вы можете получить необходимую информацию о пути для файла:
https://api.telegram.org/bot<bot_token>/getFile?file_id=the_file_id
Это вернет объект с file_id, file_size и file_path. Затем вы можете использовать file_path для загрузки файла:
https://api.telegram.org/file/bot<token>/<file_path>
Обратите внимание, что эта ссылка будет доступна только в течение часа. Через час вы можете запросить другую ссылку. Это означает, что если вы хотите каким-то образом разместить файл, и вы избегаете проверки и повторной проверки свежих ссылок каждый раз, когда вы его обслуживаете, вам может быть лучше загрузить файл на свой собственный хостинг.
Максимальный размер файла, полученного с помощью этого метода, составляет 20 МБ. Ошибка: получена, когда используется файл размером более 20 МБ (см. Ниже)
{"ok":false,"error_code":400,"description":"Bad Request: file is too big[size:1556925644]"}
Из документов телеграммы:
При успешном завершении возвращается объект File. Затем файл можно загрузить по ссылке https://api.telegram.org/file/bot/, где взято из ответа. Гарантируется, что ссылка будет действительна в течение как минимум 1 часа. Когда ссылка истекает, новый запрос можно запросить, вызвав getFile снова. На данный момент боты могут загружать файлы размером до 20 МБ.