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

如何用Python实现Telegram机器人监听其他聊天消息?

实现Telegram机器人监听私人聊天并转发消息

可行,但Telegram Bot账号本身无法直接读取用户的私人聊天记录,必须结合你的个人Telegram账号会话(通过Telegram Client API)监听目标聊天,再将消息转发到机器人窗口或指定对话。以下是具体实现步骤:

准备工作

  • 安装依赖库:推荐使用pyrogram(异步、易用),执行命令:
    pip install pyrogram tgcrypto
  • 获取API ID和API Hash:在Telegram官方开发者页面注册账号并创建应用,即可获取这两个参数。
  • 创建Telegram Bot:通过@BotFather创建机器人,获取Bot Token。
  • 获取目标聊天的chat_id:可通过临时代码打印对话ID,或在目标聊天发送消息给机器人,通过机器人更新获取ID。

核心实现代码

from pyrogram import Client, filters
from pyrogram.types import Message
import asyncio

# 替换为你的实际参数
API_ID = 123456  # 你的API ID
API_HASH = "your_api_hash_here"  # 你的API Hash
BOT_TOKEN = "your_bot_token_here"  # 机器人Token
TARGET_CHAT_ID = 123456789  # 要监听的私人聊天ID
BOT_CHAT_ID = 987654321  # 你和机器人对话的聊天ID

# 初始化个人账号客户端(用于监听目标聊天)
user_client = Client("my_user_session", api_id=API_ID, api_hash=API_HASH)
# 初始化机器人客户端(用于发送消息到机器人窗口)
bot_client = Client("my_bot_session", api_id=API_ID, api_hash=API_HASH, bot_token=BOT_TOKEN)

# 监听目标聊天的新消息并转发
@user_client.on_message(filters.chat(TARGET_CHAT_ID))
async def forward_message_handler(client: Client, message: Message):
    # 直接转发原消息到机器人窗口
    await bot_client.forward_message(
        chat_id=BOT_CHAT_ID,
        from_chat_id=TARGET_CHAT_ID,
        message_id=message.id
    )

if __name__ == "__main__":
    # 同时启动两个客户端
    loop = asyncio.get_event_loop()
    loop.create_task(user_client.start())
    loop.create_task(bot_client.start())
    loop.run_forever()

关键注意事项

  • 首次运行个人账号客户端时,需输入手机号和验证码完成登录,程序会生成会话文件my_user_session.session,后续运行无需重复登录。
  • 若不知道目标聊天的chat_id,可临时添加以下代码,发送消息到目标聊天后控制台会打印ID:
    @user_client.on_message()
    async def print_chat_id(client: Client, message: Message):
        print(f"当前聊天ID: {message.chat.id}, 聊天名称: {message.chat.title or message.chat.first_name}")
    
  • 遵守Telegram使用规则,避免频繁请求或违规操作导致账号受限。
  • 也可直接用个人账号客户端将消息转发到你自己的账号,无需通过机器人,只需修改BOT_CHAT_ID为你的个人ID即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 08:15:45