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

1

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

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

  • 0
    Я не совсем уверен, поможет ли это вам для любого типа файла: методы, подобные этому, принимают как целое число (идентификатор чата), так и строку (@channel_name) для chat_id . Так что с именем пользователя бота , я думаю, вы могли бы отправить сообщение от бота себе.
  • 0
    Нет, это не работает.
Показать ещё 1 комментарий
Теги:
bots
telegram
telegram-bot
python-telegram-bot

1 ответ

0

Вы можете отправлять файлы без 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 метода getUpdates), сохранить ассоциации между файлами и их соответствующими file_id и, наконец, ваш бот может использовать только file_id для общения с пользователями.

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

  • 0
    Я выбрал третий способ: опубликовать файл, используя multipart / form-data. Я уже видел много вопросов об этом методе, и никто не мог ответить прямо на него. Так что вы можете подробно объяснить этот метод, пожалуйста?
  • 0
    Конечно. В чем проблема с multipart / form-data?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню