如何实现Telegram机器人转发带说明的照片/视频至指定聊天
Telegram机器人带说明的照片/视频转发解决方案
原代码存在的问题
- 仅处理
photo类型消息,未覆盖video类型的转发需求 - 转发时未携带用户上传时的说明文字
- 手动下载再上传的方式冗余,易引发文件格式或性能问题
修改后的完整代码
import telebot bot = telebot.TeleBot('你的机器人Token') TARGET_CHAT_ID = 目标聊天ID # 替换为你的指定聊天窗口ID # 处理带说明的照片消息 @bot.message_handler(content_types=['photo']) def handle_photo(message): # 获取最高分辨率的照片文件ID photo_file_id = message.photo[-1].file_id # 获取用户附带的说明文字,无说明则为空字符串 caption = message.caption or "" # 转发照片至目标聊天并携带说明 bot.send_photo( chat_id=TARGET_CHAT_ID, photo=photo_file_id, caption=caption ) # 处理带说明的视频消息 @bot.message_handler(content_types=['video']) def handle_video(message): # 获取视频文件ID video_file_id = message.video.file_id # 获取用户附带的说明文字,无说明则为空字符串 caption = message.caption or "" # 转发视频至目标聊天并携带说明 bot.send_video( chat_id=TARGET_CHAT_ID, video=video_file_id, caption=caption ) bot.polling(none_stop=True)
关键改动说明
- 新增视频处理逻辑:添加针对
video类型的消息处理器,覆盖视频转发需求 - 保留说明文字:通过
message.caption提取用户上传时的附带文字,转发时传入caption参数,兼容无说明的情况 - 优化转发方式:直接使用Telegram提供的文件ID发送内容,无需手动下载再上传,既节省服务器资源又避免文件格式损坏问题
- 拆分处理函数:将照片和视频的处理逻辑分开,代码结构更清晰易维护
内容的提问来源于stack exchange,提问作者Kotik_Myrzic
相关产品推荐
相关产品推荐

