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

Python调用Telegram API自动转发含格式消息时无法转发图片问题

问题根因

你写的代码转不了图片消息,核心问题出在消息监听的过滤规则上:@bot.message_handler装饰器默认只接收纯文本(text)类型的消息,图片、视频、文件、多图相册这类非文本消息根本不会进入你写的handle_posts函数,自然触发不了转发。
bot.forward_message本身是Telegram原生的转发接口,支持转发全类型消息,会完整保留原格式、附件、配文,不需要你单独写适配图片的转发逻辑,只要让处理函数能接收到非文本类消息就行。

修复步骤
  • 修改message_handler的参数,显式声明要监听所有媒体类型+文本类型的消息,覆盖单张图片、单条视频、文档、语音、贴纸等单条发送的内容
  • 新增媒体组处理逻辑,适配用户一次发多张图/多个视频组成的相册场景——这类消息不会触发普通的message_handler,需要单独的装饰器监听

修正后的可运行完整代码如下:

import telebot

api_key = "你的机器人API密钥"
bot = telebot.TeleBot(api_key)

target_channel_id = "1234"  # 目标频道ID
authorized_user_ids = [123456, 654321]  # 授权用户ID列表

# 处理所有单条类型消息:文本、单张图片、单视频、文件、语音、贴纸等
@bot.message_handler(func=lambda m: True, content_types=telebot.util.content_type_media + ['text'])
def handle_posts(m: telebot.types.Message):
    if m.from_user.id in authorized_user_ids:
        print("已识别授权用户,开始转发消息")
        # forward_message原生支持所有单条消息类型转发,会保留原格式、原附件
        bot.forward_message(
            chat_id=target_channel_id,
            from_chat_id=m.chat.id,
            message_id=m.message_id
        )
    else:
        print("非授权用户,跳过转发")

# 额外处理媒体组(一次发送多张图/多个视频的相册消息)
@bot.media_group_handler(func=lambda m: True)
def handle_media_group(m_list):
    # 媒体组返回同组内的所有消息对象,取第一条判断发送者权限即可
    if m_list[0].from_user.id in authorized_user_ids:
        print("已识别授权用户,开始转发媒体组")
        # 逐个转发媒体组内的消息,频道端会自动还原成相册样式
        for msg in m_list:
            bot.forward_message(
                chat_id=target_channel_id,
                from_chat_id=msg.chat.id,
                message_id=msg.message_id
            )
    else:
        print("非授权用户,跳过媒体组转发")

if __name__ == "__main__":
    # 开启长轮询,跳过启动前积压的过期消息
    bot.infinity_polling(skip_pending=True)
补充说明
  • 提前确认机器人已经被加入目标频道,且拥有频道的发信权限,否则转发会报403权限错误
  • 公开频道的chat_id可以直接填频道用户名(格式如@your_channel),私有频道必须填数字格式的ID
  • 用原生forward_message转发比自己下载图片再调用send_photo重发更稳定,不会丢失图片配文的格式(粗体、斜体、超链接这些),也不会压缩画质
  • 如果需要过滤特定类型的消息,只要调整content_types的传参即可,比如只收文本和图片就传['text', 'photo']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 14:18:17