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

拥有Pyrogram会话文件与账号手机号,如何接收Telegram机器人验证码

利用Pyrogram接收多账号的Telegram机器人验证码

核心逻辑

你已有的会话文件(.session)对应已完成登录验证的Telegram账号,只需通过Pyrogram加载这些会话,监听目标机器人的消息并提取验证码即可。

分步实现

1. 配置多账号会话

先整理你的账号信息,每个账号对应一个会话文件、API ID和API Hash(所有账号可共用同一套API信息,也可单独配置):

from pyrogram import Client
import asyncio
from pyrogram.handlers import MessageHandler

# 替换为你的账号配置
accounts = [
    {"session_file": "account_1.session", "api_id": 123456, "api_hash": "your_api_hash_here"},
    {"session_file": "account_2.session", "api_id": 123456, "api_hash": "your_api_hash_here"},
    # 添加更多账号...
]

2. 编写验证码提取与消息监听

实现消息处理器,过滤目标机器人的消息并提取验证码(根据机器人的消息格式调整提取逻辑):

def get_verification_code(text):
    # 示例:提取消息中的4-6位数字验证码,根据实际格式修改正则
    import re
    code_match = re.search(r'\b\d{4,6}\b', text)
    return code_match.group() if code_match else None

async def listen_for_bot_messages(client, message):
    # 替换为目标机器人的用户名(不带@)
    target_bot = "your_verification_bot"
    if message.from_user and message.from_user.username == target_bot:
        verification_code = get_verification_code(message.text)
        if verification_code:
            # 这里可以将验证码写入文件、数据库,或直接输出
            print(f"账号 [{client.name}] 收到验证码: {verification_code}")

3. 启动多会话监听

加载所有会话文件,注册消息处理器,异步启动所有客户端并保持运行:

async def main():
    clients = []
    for acc in accounts:
        # 加载会话文件,无需再次输入手机号/验证码(会话有效时)
        client = Client(acc["session_file"], acc["api_id"], acc["api_hash"])
        # 注册消息处理器
        client.add_handler(MessageHandler(listen_for_bot_messages))
        clients.append(client)
    
    # 异步启动所有客户端
    await asyncio.gather(*[client.start() for client in clients])
    
    # 保持程序运行,直到手动终止
    await asyncio.Event().wait()

if __name__ == "__main__":
    asyncio.run(main())

重要注意事项

  • 会话有效性:如果会话文件过期,启动时会触发重新登录,此时需要用对应手机号接收验证码完成登录,生成新的有效会话文件。
  • API信息获取:API ID和API Hash可在Telegram官方开发者平台申请,每个账号需使用正确的API信息。
  • 机器人对话前置:确保目标账号已经和机器人发起过对话(Telegram默认不会推送未交互过的机器人消息)。
  • 格式适配:get_verification_code函数的正则表达式需匹配机器人发送的验证码格式,比如机器人发送“验证码:1234”,则正则可调整为r'验证码:(\d{4})'。

问题排查

  • 客户端启动失败:检查会话文件路径是否正确,API ID/Hash是否匹配,账号是否被限制登录。
  • 收不到机器人消息:确认机器人未被账号拉黑,且账号与机器人有过至少一次对话记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:15:22