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

Telegram机器人无法转发媒体文件,报RPCError 400: CHAT_FORWARDS_RESTRICTED

Telegram机器人转发媒体报错CHAT_FORWARDS_RESTRICTED的解决办法

这个错误的核心原因是目标频道开启了禁止转发限制,或者原频道的内容本身被设置了禁止转发权限,直接用send_message转发带媒体的消息会触发Telegram的安全限制。

解决思路及代码修改

如果原内容没有禁止保存媒体,可以通过「下载媒体后重新发送」的方式绕过转发限制,修改后的代码如下:

@BotzHubUser.on(events.NewMessage(incoming=True, chats=FROM))
async def sender_bH(event):
    for i in TO:
        try:
            # 判断消息是否包含媒体内容
            if event.message.media:
                # 下载媒体文件到本地临时路径
                media_path = await event.message.download_media()
                # 发送媒体到目标频道,附带原消息的文案
                await BotzHubUser.send_file(
                    i,
                    media_path,
                    caption=event.message.text or ""
                )
                # 清理本地临时文件(可选,避免占用空间)
                import os
                if os.path.exists(media_path):
                    os.remove(media_path)
            else:
                # 无媒体的普通消息直接转发
                await BotzHubUser.send_message(i, event.message)
        except Exception as e:
            print(e)

特殊情况处理

如果原频道设置了「禁止保存内容」,常规下载方式会失效,此时可以:

  • 确认机器人账号是否为原频道的管理员,管理员账号通常不受保存限制
  • 若无法获取管理员权限,这类受限内容无法转发,只能跳过处理

额外注意事项

  • 确保机器人在所有目标频道中拥有「发送消息」和「发送媒体」的权限(至少是普通成员权限,部分严格频道可能需要管理员权限)
  • 部分官方限制的内容无法通过任何方式转发,遇到这类情况建议直接捕获错误并跳过

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:15:32