Почему идентификаторы фотографий в Telegram-боте стали невалидными?
Примерно месяц назад столкнулся с проблемой, что в боте заказчика идентификаторы фотографий в Telegram-боте стали невалидными. Т.е. в БД хранятся идентификаторы фотографий, которые бот получил ранее от пользователей. И когда бот пытается прислать пользователю фотографию по сломанному айдишнику, вызывается исключение.
Почему так может происходить?
Какую ошибку отдаёт телеграм?
Вообще file_id может меняться со временем, как я понял.
Если нужно через длительное время картинку использовать, то лучше скачать заранее и хранить у себя.
Быстрое предположение - телеграм хранит файлы отправленные ботом N дней после чего удаляет. Это было бы разумное решение, учитывая что многие загружают файлы не идентификаторами, а каждый раз по новой.
Решения два:
- Юзер боты
- Обработка невалидного идентификатора