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

Pyrogram切换账号:遇UserBannedInChannel错误如何更换Client参数

解决Pyrogram触发UserBannedInChannel后切换账号的问题

直接修改现有Client实例的api_id、api_hash和会话名后调用reload()是行不通的——Pyrogram在初始化Client时,就已经基于这些参数建立了底层的认证连接和会话上下文,修改实例属性不会同步到内部核心逻辑,reload()仅能重新加载配置文件,无法替换已绑定的认证信息。

正确的做法是创建新的Client实例来切换账号,具体步骤如下:

  • 捕获到UserBannedInChannel错误时,先关闭当前Client实例,释放占用的资源
  • 使用新的api_id、api_hash和会话名创建全新的Client对象
  • 启动新的Client实例,继续执行后续业务逻辑

示例代码(同步模式)

from pyrogram import Client, errors

# 初始客户端配置
SESSION_NAME = "original_session"
API_ID = 123456
API_HASH = "your_api_hash"
NEW_API_ID = 654321
NEW_API_HASH = "your_new_api_hash"
NEW_SESSION_NAME = "new_session"

def run_bot(client):
    try:
        with client:
            # 这里写你的机器人核心逻辑,比如发送消息、处理更新
            client.send_message("target_channel", "测试消息")
    except errors.UserBannedInChannel:
        print("当前账号被封禁,切换至备用账号...")
        # 关闭当前客户端
        client.stop()
        # 创建并启动新客户端
        new_client = Client(name=NEW_SESSION_NAME, api_id=NEW_API_ID, api_hash=NEW_API_HASH)
        run_bot(new_client)

# 启动初始机器人
run_bot(Client(name=SESSION_NAME, api_id=API_ID, api_hash=API_HASH))

示例代码(异步模式)

如果你的机器人是基于异步逻辑运行的,可以这样调整:

from pyrogram import Client, errors

# 初始配置
SESSION_NAME = "original_session"
API_ID = 123456
API_HASH = "your_api_hash"
NEW_API_ID = 654321
NEW_API_HASH = "your_new_api_hash"
NEW_SESSION_NAME = "new_session"

async def main(client):
    try:
        await client.start()
        # 异步逻辑示例:处理消息更新
        @client.on_message()
        async def handler(_, message):
            await message.reply("收到消息")
        await client.run_until_disconnected()
    except errors.UserBannedInChannel:
        await client.stop()
        print("切换至备用账号...")
        new_client = Client(name=NEW_SESSION_NAME, api_id=NEW_API_ID, api_hash=NEW_API_HASH)
        await main(new_client)

# 启动初始机器人
import asyncio
asyncio.run(main(Client(name=SESSION_NAME, api_id=API_ID, api_hash=API_HASH)))

注意:每个Client实例对应独立的会话文件,务必保证新的name参数与原会话名不同,避免会话数据冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 06:10:55