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

WTelegramClient C#登录异常:删除session文件后无法接收验证码

解决WTelegram.Client删除session后无法接收验证码的问题

以下是针对你遇到问题的具体解决步骤:

  • 检查Config回调的手机号返回逻辑
    确保Config函数在无session状态下能正确返回手机号。很多人容易忽略这一点:第一次登录后,后续删除session时如果phone_number返回为空或错误值,客户端无法向Telegram发起验证码请求,只会卡在Code:提示。示例正确逻辑:

    static string Config(string what)
    {
        return what switch
        {
            "api_id" => "你的API_ID",
            "api_hash" => "你的API_HASH",
            "phone_number" => "+你的完整手机号(带国家码)",
            "verification_code" => { Console.Write("Code: "); return Console.ReadLine(); },
            _ => null
        };
    }
    
  • 清理所有WTelegram相关临时文件
    删除WTelegram.session的同时,要一并删除同目录下的.session-journal文件(WTelegram的事务日志文件),这些残留文件可能导致客户端读取旧状态。如果还是不行,可以指定全新的session文件名创建客户端:

    using var client = new WTelegram.Client(Config, "fresh_session.session");
    
  • 排查账号安全与风控问题

    • 确认目标账号未开启两步验证:如果开启了,删除session后程序会要求输入密码而非验证码,你可能误以为是卡在验证码输入。
    • 检查账号是否被风控:频繁切换设备/IP登录可能触发Telegram的安全限制,导致验证码无法发送。先在手机客户端正常登录账号,确认账号状态正常后再重试程序。
  • 调试登录流程,排查异常
    在登录前后添加日志输出,观察客户端状态:

    using var client = new WTelegram.Client(Config);
    Console.WriteLine("客户端初始化完成,开始登录流程...");
    var user = await client.LoginUserIfNeeded();
    Console.WriteLine($"登录成功,当前用户:{user.first_name}");
    

    如果卡在Code:提示,说明客户端已发起验证码请求但未收到,可尝试抓包查看API请求是否成功,或检查WTelegram.Client是否吞掉了异常信息。

  • 更新WTelegram.Client到最新版本
    旧版本库可能存在session重置后的登录逻辑bug,通过NuGet更新到最新稳定版:

    Update-Package WTelegramClient
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 17:16:12