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

使用pyTelegramBotAPI发送照片报错:'Message'对象无file_id属性

解决pyTelegramBotAPI发送照片时的AttributeError问题

问题原因

接收照片消息时,Message对象本身并不直接包含file_id属性,照片的文件ID存储在message.photo列表中——这个列表里的每个元素是不同分辨率的PhotoSize对象,每个对象才拥有file_id属性。

修复后的代码

bot = telebot.TeleBot("TOKEN", parse_mode=None)

@bot.message_handler(content_types=['photo'])
def handle_docs_photo(message):
    # 确保消息中存在照片内容
    if message.photo:
        # 取最高分辨率的照片file_id(列表最后一个元素)
        photo_file_id = message.photo[-1].file_id
        # 目标用户ID建议用整数类型,字符串也可兼容
        bot.send_photo(1267203280, photo_file_id)

额外注意事项

  • 确认目标用户ID1267203280是正确的,且你的Bot已经和该用户有过对话(否则无法主动发送消息)
  • 如果需要发送特定分辨率的照片,可以调整message.photo的索引,比如message.photo[0]是最低分辨率的版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 20:36:17