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

Pyrogram多客户端在群组中不显示在线的问题求助

问题分析

你当前的代码存在几个关键问题,导致群成员列表里只有少数账号显示在线:

  1. 启动时仅获取一次用户状态,后续循环用的是旧值,根本触发不了UpdateStatus请求
  2. 单纯调用一次UpdateStatus无法维持群内在线状态,Telegram需要客户端保持活跃连接才能同步状态
  3. 所有客户端用完全相同的app_version、device_model等标识,容易被判定为批量自动化账号,限制状态展示
解决方案
  • 实时获取用户状态
    把get_me()放到循环内部,每次检查都拉取最新状态,替换掉启动时的一次性获取:

    import random
    import asyncio
    from pyrogram import Client
    from pyrogram.raw.functions.account import UpdateStatus
    from pyrogram.enums import UserStatus
    
    async def openUser(session_string):
        app = Client(
            "sessions/session",
            session_string=session_string,
            api_id=API_ID,
            api_hash=API_HASH,
            in_memory=True,
            # 给每个客户端加唯一标识,避免批量特征
            app_version=f"1.2.3_{random.randint(1000,9999)}",
            device_model=f"PC_{random.randint(1,10)}",
            system_version=f"Linux_{random.randint(1,5)}"
        )
        await app.start()
        me = await app.get_me()
        print(f'success login user: {me.first_name}')
        while True:
            # 每次循环拉取最新状态
            current_me = await app.get_me()
            if current_me.status == UserStatus.OFFLINE:
                await app.invoke(UpdateStatus(offline=False))
            # 加合理延迟,避免频繁请求触发限制
            await asyncio.sleep(300)
    
  • 维持活跃连接
    Telegram的群内在线状态依赖客户端和服务器的持续心跳,单纯设置在线不够。可以在循环里加一个轻量动作模拟真实用户活跃:

    # 在循环内添加,比如拉取最近一个对话维持连接
    await app.get_dialogs(limit=1)
    
  • 分散并发请求
    30个客户端不要同时启动和执行操作,给每个任务加随机延迟,避免请求峰值:

    tasks = []
    for obj in db:
        task = asyncio.create_task(openUser(obj["session"]))
        tasks.append(task)
        # 每个任务启动间隔1-3秒
        await asyncio.sleep(random.uniform(1, 3))
    await asyncio.gather(*tasks)
    
  • 提前养号消除限制
    如果是新注册或低活跃度账号,先手动完成一些真实操作(比如发消息、加群、浏览内容),再用脚本运行,避免Telegram限制状态展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 08:02:29