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

如何在Telegram中自动转发指定用户从群组A到群组B的消息?

Telegram 指定用户消息自动转发方案

前期准备

  • 申请Telegram API凭证:前往Telegram官方开发者平台注册账号,获取API_ID和API_HASH,这是使用Telethon的必要条件
  • 安装Telethon:执行命令 pip install telethon

核心步骤

1. 获取关键ID

私密群组和用户无法通过用户名直接定位,需先获取以下ID:

  • 运行简易登录脚本,拉取已加入群组列表,找到群组A、B的ID(私密群组ID通常为负数)
  • 获取Bob的用户ID:可通过群组A的成员列表或Bob的个人资料提取

2. 监听目标群组消息

使用Telethon的events.NewMessage事件监听群组A的新消息,设置双重过滤:

  • 仅处理来自群组A的消息(匹配chat_id)
  • 仅处理Bob发送的消息(匹配消息的from_id)

3. 自动转发至目标群组

监听到符合条件的消息时,调用client.forward_messages方法将消息转发至群组B,Telethon会自动兼容文本、图片、文件等多种消息类型。

示例代码

from telethon import TelegramClient, events

# 替换为你的实际信息
API_ID = 123456  # 你的API ID
API_HASH = 'abcdef1234567890abcdef1234567890'  # 你的API Hash
SESSION_FILE = 'telegram_session'  # 会话文件名,首次登录后自动生成

# 替换为实际ID
GROUP_A_ID = -1001234567890  # 私密群组A的ID
GROUP_B_ID = -1000987654321  # 私密群组B的ID
BOB_USER_ID = 987654321  # Bob的用户ID

with TelegramClient(SESSION_FILE, API_ID, API_HASH) as client:
    # 监听群组A的新消息
    @client.on(events.NewMessage(chats=GROUP_A_ID))
    async def forward_bob_messages(event):
        # 验证消息发送者为Bob
        if event.from_id == BOB_USER_ID:
            # 转发消息到群组B
            await client.forward_messages(GROUP_B_ID, event.message)
            print(f"转发Bob消息成功")
    
    # 保持客户端持续运行
    client.run_until_disconnected()

部署与运行

要实现7×24小时在线运行,建议部署到云服务器:

  • 使用后台运行命令:nohup python3 your_script.py &,进程会在后台持续运行
  • 更稳定的方式是配置systemd服务,确保服务器重启后脚本自动启动

注意事项

  • 遵守Telegram服务条款,避免频繁转发触发账号限制
  • 若群组或用户ID变更,需及时更新脚本中的对应值
  • 首次运行脚本需输入手机号和验证码,登录后生成的会话文件可复用,后续无需重复验证

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 10:56:06