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

无活跃会话设备如何获取Telethon二维码授权登录令牌?

Telethon无本地活跃会话时获取二维码登录令牌的方法

首先明确核心误区:调用接口要求提前建立连接,不等于要求提前完成账号授权,这是很多刚接触Telethon二维码登录的开发者最容易混淆的点。

  • 核心概念区分:
    Telethon和Telegram服务器的交互分两个完全独立的阶段:
    1. 基础连接阶段:客户端和Telegram的MTProto服务器完成网络握手,建立加密传输通道,这个阶段不需要任何账号身份、不需要登录态,哪怕你从来没在这个设备上登过账号也能完成
    2. 授权登录阶段:在建立好的连接上,通过手机号验证码、二维码、密码等方式完成身份校验,拿到账号的会话授权,后续才能调用账号相关的业务接口
      官方文档标注的「调用方法前必须先建立连接」,指的是完成第一步的基础网络连接,完全不需要提前走到第二步的授权阶段。
  • 无活跃会话下的二维码令牌获取流程:
    1. 初始化TelegramClient实例,会话文件路径可以填一个本地不存在的新文件名,不需要提前准备已有会话
    2. 显式调用connect()方法完成和Telegram服务器的基础连接,这一步不需要任何账号相关的输入
    3. 直接调用auth.ExportLoginTokenRequest接口即可拿到二维码登录令牌,不需要提前登录
    4. 将返回的token拼接为tg://login?token={base64编码处理后的token}格式的内容,生成二维码给已授权设备扫描
    5. 轮询接口等待扫码确认,扫码通过后客户端会自动完成授权,把会话保存到本地文件,后续就可以正常调用其他账号接口了
  • 可直接运行的参考代码:
import asyncio
import base64
from telethon import TelegramClient, functions
from telethon.errors import SessionPasswordNeededError

# 替换为你自己申请的api_id和api_hash
API_ID = 123456
API_HASH = "your_api_hash_here"
# 新会话文件名,本地不存在会自动创建
SESSION_NAME = "qr_login_new_session"

client = TelegramClient(SESSION_NAME, API_ID, API_HASH)

async def main():
    # 第一步:建立基础连接,无任何登录要求
    await client.connect()

    # 第二步:导出二维码登录令牌,未登录状态可直接调用
    login_token = await client(functions.auth.ExportLoginTokenRequest(
        api_id=API_ID,
        api_hash=API_HASH,
        except_ids=[]  # 未登录状态传空列表即可
    ))

    # 拼接为Telegram可识别的登录链接
    qr_url = f"tg://login?token={base64.urlsafe_b64encode(login_token.token).decode('utf-8').rstrip('=')}"
    print("请使用已登录Telegram账号的移动端扫描以下链接生成的二维码:")
    print(qr_url)

    # 等待扫码完成
    try:
        await client.qr_login_wait(login_token)
        print("登录成功!")
    except SessionPasswordNeededError:
        # 账号开启两步验证时需要额外输入密码
        password = input("请输入账号两步验证密码:")
        await client.sign_in(password=password)
        print("两步验证通过,登录成功!")

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

补充说明:官方示例里的except_ids=[42]只是示例占位,未登录状态下这个参数传空列表即可,作用是排除指定的已登录设备id,避免把登录通知发给这些设备。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 21:57:23