Как отправить файлы из бота telegram? - PullRequest
0 голосов
/ 07 января 2019

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

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

1 Ответ

0 голосов
/ 10 января 2019

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

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

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

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


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

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

...