436 подписчиков

Telegram-bot с нуля, как получить file_id с документов, фото, аудио и видео "прямо" в телеграм боте . Урок 5

3,1K прочитали

Доброго времени суток, данная статья вообще не планировалась

и делаю её специально отдельной, чтобы не потерять данный код, т.к. он может понадобиться, возможно, кому-то и не раз.

Превью
Превью

А теперь собственно о чём идёт речь,

Я пишу новую статью, где необходимо будет нашему телеграм боту отправлять пользователю фотографию,

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

Ну а пока что, для тех кто понимает о чём идёт речь,

оставляю этот код здесь.

Точнее хэндлеры, которые получают с отправляемых файлов file_id.

@bot.message_handler(content_types=["document"])

def handle_files(message):

document_id = message.document.file_id

file_info = bot.get_file(document_id)

print(document_id) # Выводим file_id

print(f'http://api.telegram.org/file/bot{token}/{file_info.file_path}')

# Выводим ссылку на файл

bot.send_message(message.chat.id, document_id)

# Отправляем пользователю file_id

@bot.message_handler(content_types=["photo"])

def handle_photo(message):

photo_id=message.photo[3].file_id

file_info = bot.get_file(photo_id)

print(photo_id) # Выводим file_id

print(f'http://api.telegram.org/file/bot{token}/{file_info.file_path}')

# Выводим ссылку на фото

bot.send_message(message.chat.id, photo_id)

# Отправляем пользователю file_id

@bot.message_handler(content_types=["audio"])

def handle_audio(message):

audio_id=message.audio.file_id

file_info=bot.get_file(audio_id)

print(audio_id)

print(f'http://api.telegram.org/file/bot{token}/{file_info.file_path}')

# Выводим ссылку на файл

bot.send_message(message.chat.id, audio_id)

# Отправляем пользователю file_id

@bot.message_handler(content_types=["video"])

def handle_video(message):

video_id=message.video.file_id

print(video_id)

bot.send_message(message.chat.id, video_id)

# Отправляем пользователю file_id

Можно было бы добавить этот код в статью, но хочется сделать его легкодоступным.

Надеюсь он вам поможет)

Удачи в усовершенствовании.

Ошибки и вопросы жду в комментарии.