You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Aiogram调用get_file_url获取的图片URL不正确如何处理?

Aiogram获取Telegram图片URL错误解决方案

问题原因

该问题是部分版本aiogram(尤其是2.x老旧版本)的内置bot.get_file_url方法实现逻辑缺陷导致的:该方法没有主动向Telegram API发起getFile请求获取真实的file_path参数,而是直接将传入的file_id作为文件路径拼接在接口地址后,最终返回无效的拼接链接。

修复方案

调整调用逻辑,先请求Telegram API获取包含真实路径的文件对象,再生成有效URL,代码示例如下:

# 1. 先请求接口获取File对象
file_obj = await bot.get_file(message.photo[-1].file_id)
# 2. 通过File对象获取正确URL
correct_url = file_obj.get_url()

# 手动拼接方式效果完全一致,可按需选用
# correct_url = f"https://api.telegram.org/file/bot{bot.token}/{file_obj.file_path}"

注意事项

  • 上述方法为异步调用,需要放在异步函数中搭配await关键字使用
  • Telegram Bot API仅允许下载大小不超过20MB的文件,超出大小的文件不会返回file_path,无法通过该方式获取下载链接
  • 该逻辑同时适配aiogram 2.x和3.x全版本,无需依赖存在缺陷的顶层get_file_url方法

内容的提问来源于stack exchange,提问作者Alien4you2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:54:04