Как отправить файл в бот telegram?

Я пишу бот Telegram и мне нужно отправлять файлы пользователям. я хочу получить file_id файлов, которые я хочу отправить. Я слежу за этим ответом.

Получить file_idЯ должен отправить файл своему боту Telegram. Вопрос в том, как отправить файлы через мой бот самому себе? (может быть, используя API?)

1 ответ

Вы можете отправлять файлы без file_id:

Существует три способа отправки файлов (фотографии, наклейки, аудио, мультимедиа и т. Д.):

  • Если файл уже хранится где-то на серверах Telegram, вам не нужно его повторно загружать: каждый объект файла имеет поле file_id, просто передайте этот file_id в качестве параметра вместо загрузки. Для файлов, отправляемых таким способом, ограничений нет.
  • Предоставьте Telegram URL-адрес HTTP для отправляемого файла. Telegram загрузит и отправит файл. Максимальный размер 5 МБ для фотографий и 20 МБ для других типов контента.
  • Разместите файл, используя multipart/form-data обычным способом, который файлы загружаются через браузер. Максимальный размер 10 МБ для фотографий, 50 МБ для других файлов

Ты можешь использовать file_id только если вы уже отправили его кому-то ранее (используя URL или multipart/form-data).


Таким образом, если список файлов, которые вы хотите отправить, является предопределенным, "статическим", вы можете загрузить их все один раз, получить их file_idх (используя getUpdates метод, например), хранить ассоциации между файлами и их соответствующими file_idи, наконец, ваш бот может использовать только file_id общаться с пользователями.

С другой стороны, если список возможных файлов варьируется, вы можете отправлять файлы только через URL или multipart/form-data.

Другие вопросы по тегам