У меня была такая же проблема, и похоже, что нет способа отправить file_id
в данных обратного вызова.
Если вы берете file_id
из сообщения, отправленного вашему боту, обходной путь может использовать message_id
, который является прогрессивным индексом, который идентифицирует сообщение в чате.
К сожалению, в Telegram API нет метода, который позволял бы вам восстанавливать прошлое сообщение с его идентификатором, но при получении сообщение, которое вы можете сохранить в сопоставлении message_id -> file_id
(в памяти или в дБ) и передать ключ как callback_data.
Конечно, это не лучшая вещь в мире, но я думаю, что это лучшая вещь, которую мы можем до тех пор, пока они не увеличат размер callback_data.