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

如何避免Telethon登录缅甸等敏感地区Telegram账号时被立即删除

问题描述

我使用Telethon登录Telegram账号并保存会话,但登录缅甸等敏感国家的账号时,账号会在登录后立即被删除。

我的登录代码如下:

from telethon.sync import TelegramClient
from telethon.sessions import StringSession

client = TelegramClient(
    StringSession(),
    api_id,
    api_hash,
    timeout=33,
    device_model=device["device_model"],
    system_version=device["system_version"],
    app_version=device["app_version"],
    lang_code=device["lang_code"],
    system_lang_code=device["system_lang_code"]
)

await client.connect()
await client.send_code_request(phone_number)

我尝试通过传入device_model、system_version、app_version等参数模拟移动客户端,但在Telegram设置的设备页面查看会话时,显示的是Web Session而非Android或iPhone这类移动会话。

我已经试过以下方案:

  • 使用StringSession()
  • 设置device_model、system_version、app_version等参数
  • 使用全新代理
  • 手动登录并设置合理延迟
解决方案

1. 切换移动专属会话类型

StringSession默认对应Web端会话,无法被识别为移动设备。要模拟安卓/苹果客户端,需改用AndroidSession或IOSSession:

from telethon.sync import TelegramClient
from telethon.sessions import AndroidSession

# 实例化安卓会话,会话数据会保存到本地文件
client = TelegramClient(
    AndroidSession('my_android_session'),
    api_id,
    api_hash,
    timeout=33,
    device_model="Samsung Galaxy S22",
    system_version="Android 13",
    app_version="9.6.7",  # 匹配官方客户端真实版本
    lang_code="my",
    system_lang_code="my"
)

await client.connect()
await client.send_code_request(phone_number)

2. 补全真实设备的全部特征参数

除了已设置的字段,还需确保:

  • app_version严格匹配Telegram官方移动客户端的当前版本(可从应用商店查看)
  • lang_code和system_lang_code设置为目标地区的语言代码(缅甸语为my)
  • 不要省略base_url参数,可指定移动客户端的API地址(如https://my.telegram.org)

3. 优化登录行为规避风控

  • 使用目标国家的原生住宅IP,避免数据中心IP
  • 登录后先执行低风险操作:打开对话列表、发送1-2条普通消息、停留10-15分钟
  • 不要在短时间内频繁登录/注销账号,保持会话稳定

4. 验证API凭证的平台类型

确保使用的API ID和Hash是从Telegram开发者平台申请的移动应用类型凭证,而非Web应用类型。错误的凭证类型会被官方识别为非正规客户端,触发账号限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 03:49:57