Отправить файл большого размера через телеграм бота

Статьи

Отправить файл большого размера через телеграм бота

Автор: Fantom, 18 апреля 2022

Приветствую всех. В этой небольшой статье я покажу один из способов, как можно отправить файл большого размера в телеграм боте с помощью Python. Для примера буду использовать библиотеку pyTelegramBotAPI (telebot).

Что бы лучше понять о чем речь, попробуйте воспроизвести код ниже.

import telebot

bot = telebot.TeleBot("ТОКЕН")

@bot.message_handler(func=lambda message: message.text.lower() in ['файл'])
def echo_all(message):
    bot.reply_to(message, 'Загрузка файла')
    file = open('file.rar', 'rb')
    bot.send_document(message.chat.id, file)

bot.infinity_polling()
Данный бот при получении сообщения файл отвечает пользователю и отправляет документ file.rar.

Отправка файлов в телеграм бот

Если документ file.rar будем иметь вес больше 50МБ, то пользователь его не получит.

Отправка файлов в телеграм бот

Проблему можно решить способами отправки file_id.

Отправка файла по file_id

Откройте в браузере ссылку указав свой токен.

https://api.telegram.org/bot<ваш_токен>/getUpdates

После чего, отправьте своему боту документ. Я отправил file.rar с весом ~70МБ.

Отправка файлов в телеграм бот

Перезагрузите страницу с ссылкой что вы открыли в браузере ранее, и вы увидите массив данных где присутствует file_id вашего документа.

Отправка файлов в телеграм бот

Теперь вы можете использовать его в коде, и таким образом отправлять документы больше 50МБ.

import telebot

bot = telebot.TeleBot("ТОКЕН")

@bot.message_handler(func=lambda message: message.text.lower() in ['файл'])
def echo_all(message):
    bot.reply_to(message, 'Загрузка файла')
    file ='IAAxkBAAIFIWJYZMHvbYpgCRAAIKGQACdSfBSqBQd6lVllkwIwQ'
    bot.send_document(message.chat.id, file)

bot.infinity_polling()

Результат

Отправка файлов в телеграм бот

Комментарии

Markdown
Войти