Как сделать сделать загрузку документа или фото в telegram bot, чтобы загрузка происходила только после вызова callbackquery?

Пытаюсь создать бот на pytelegrambotAPI.

Идея такая пользователь вводит номер документа и из базы получает сообщение с информацией по документу и reply_markup с клавиатурой , где одна из кнопок это загрузить фото заполненного документа. Как сделать, чтобы прием фото документа был возможен только после нажатия этой кнопки?

Что я пробовал:

Обычный декоратор

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

фото принимаются всегда независимо от reply_markup.

Попытался сделать так:

@bot.callback_query_handler(func=lambda call: True)
    def callback_worker(call):
            if call.data == 'send_photo':
                bot.send_message(call.message.chat.id, 'Загрузите фото документа')
                file_info = bot.get_file(call.message.document.file_name)
                downloaded_file = bot.download_file(file_info.file_path)

Тогда выбрасывается исключение:

AttributeError: 'NoneType' object has no attribute 'file_name'

Как можно сделать?


Ответы (1 шт):

Автор решения: Станислав

Кажется понял, что это можно сделать через register_next_step_handler.

→ Ссылка