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

如何跳过Telegram账号启动时的手机号/令牌输入,让脚本持续运行?

解决Telegram多账号脚本跳过授权输入的问题

你的问题出在现有代码只捕获了PhoneNumberInvalidError,但那些需要输入手机号/机器人令牌的session,会抛出未授权类异常(比如AuthorizationRequiredError、PhoneNumberRequiredError),这些没被捕获,导致脚本卡在输入步骤。要实现跳过这类账号,只需要扩展异常捕获范围,或者提前判断session是否已授权。

修改后的代码示例

for f in glob.iglob("*.session"):
    name_file = f.rsplit('.', 1)[0]
    print(name_file)

    try:
        client = TelegramClient(session=name_file, api_id=api_id, api_hash=api_hash)
        # 先尝试连接,提前检测是否需要授权
        await client.connect()
        if not client.is_user_authorized():
            print(f"账号 {name_file} 未授权,跳过")
            await client.disconnect()
            continue
        
        await send_mes_to_users(client)
        await client.disconnect()

    except (errors.rpcerrorlist.PhoneNumberInvalidError,
            errors.rpcerrorlist.AuthorizationRequiredError,
            errors.rpcerrorlist.PhoneNumberRequiredError):
        print(f"账号 {name_file} 无法自动登录,跳过")
        continue

关键修改点

  • 提前调用client.connect()并通过is_user_authorized()判断账号是否已完成授权,未授权直接跳过,避免触发输入流程
  • 扩展异常捕获列表,把所有需要手动输入授权的异常都包含进去,确保脚本不会卡在输入环节
  • 用完client后调用disconnect(),避免资源占用

内容的提问来源于stack exchange,提问作者Сергей Викторович

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:15:35