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

如何使用Python的telebot转发带说明文字的图片至群组

用Python+telebot实现带说明文字的图片消息转发到指定群组

核心实现步骤

要完成带说明文字的图片转发,只需给机器人新增图片消息的处理逻辑,具体分为三步:

  1. 注册图片消息处理器,捕获用户发送的带说明的图片消息
  2. 提取图片的文件ID和附带的说明文字(caption)
  3. 调用telebot接口将消息转发或重新发送到指定群组

完整代码示例

import telebot

# 替换为你的机器人Token
BOT_TOKEN = "你的机器人Token"
# 替换为目标群组的数字ID(超级群组/频道ID以-开头)
TARGET_GROUP_ID = -1001234567890

bot = telebot.TeleBot(BOT_TOKEN)

# 保留原有纯文本消息转发功能
@bot.message_handler(content_types=["text"])
def forward_text(message):
    bot.forward_message(TARGET_GROUP_ID, message.chat.id, message.message_id)

# 新增带说明文字的图片消息处理逻辑
@bot.message_handler(content_types=["photo"])
def forward_photo_with_caption(message):
    # 获取最高分辨率的图片文件ID(photo数组最后一个元素对应最高清版本)
    high_res_photo_id = message.photo[-1].file_id
    # 获取图片附带的说明文字,无说明则为空字符串
    photo_caption = message.caption or ""

    # 方式1:直接转发原消息(保留原发送者信息和所有消息属性)
    bot.forward_message(
        chat_id=TARGET_GROUP_ID,
        from_chat_id=message.chat.id,
        message_id=message.message_id
    )

    # 方式2:重新发送图片+说明文字(机器人作为发送者,可修改caption)
    # bot.send_photo(
    #     chat_id=TARGET_GROUP_ID,
    #     photo=high_res_photo_id,
    #     caption=photo_caption
    # )

# 启动机器人
bot.polling(none_stop=True)

关键细节说明

  • 消息类型捕获:通过content_types=["photo"]指定处理器只响应图片消息
  • 图片资源选择:message.photo是包含不同分辨率图片对象的列表,取最后一个元素可获得最高清的图片
  • 说明文字处理:message.caption对应图片附带的文字,需处理为空的场景
  • 两种转发方式区别:
    • forward_message:直接转发原消息,保留原发送者信息(需群组权限允许)
    • send_photo:由机器人重新发送图片和说明,支持修改caption内容
  • 群组ID获取:可调用bot.get_updates()接口,或使用Telegram ID查询工具获取目标群组的数字ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 13:05:26