Задать вопрос

Почему не отображается миниатюра результата Inline-запроса?

Я хочу, чтобы при Inline-запросе в боте Telegram появлялась миниатюра фотографии. Вот код:
Articles.append(InlineQueryResultArticle(
                id=ID,
                title=ID,
                description="Описание",
                input_message_content=types.InputTextMessageContent(message_text=ID),
                thumb_url="https://e.unicode-table.com/orig/86/5df5948dae3d1f777714df3274045d.png")
)

Данный код работает правильно. Но когда я в аргумент "thumb_url" передаю не ссылку картинки, найденную в интернете, а а url-адрес фото, которое хранится на сервере Telegram:
thumb_url = "https://api.telegram.org/file/bot{0}/{1}".format(TOKEN, bot.get_file(ID).file_path)

где ID - идентификатор картинки, на сервере Telegram.
код работает некорректно. Ошибку не выдает, но заместо миниатюр - пустой квадрат.
Пробовал получившуюся ссылку выводить в консоль и потом открывать вручную. Она рабочая.
Заметил такую разницу: когда перехожу по ссылке на картинку, найденную в интернете, он открывает ее в браузере, а когда перехожу по ссылке, полученную вышеуказанным кодом, браузер не открывает ее, а скачивает. Может в этом проблема?
  • Вопрос задан
  • 336 просмотров
Подписаться 3 Простой Комментировать
Решения вопроса 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Ссылка на файл на серверах Telegram - это плохо. Во-первых, она содержит токен бота (может утечь), во-вторых, она может меняться со временем. В большинстве ситуаций полагается передавать file_id, но для thumb_url надо передавать именно URL. Так что увы - придётся самому куда-то публиковать картинки.

Скачивание файла вызывает заголовок Content-Disposition ответа.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы