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

如何用WTelegramClient自动化新账号注册?解决未发SMS验证码问题

使用WTelegramClient实现新账号自动化注册的问题

我尝试使用WTelegramClient构建一个自动将消息从一个Telegram群组转发到另一个群组的机器人。现有账号可正常登录并完成消息转发,但使用全新手机号注册时遇到问题:程序卡在应发送SMS验证码的环节,未触发实际注册流程。

我的目标是实现新手机号的自动化注册流程(获取SMS验证码),完成账号创建后自动进行消息转发。我查阅了README文档,得知WTelegramClient支持账号注册,但始终无法实现。

已完成操作:

  • 成功使用现有账号登录并实现消息群组转发
  • 使用新手机号时程序停在发送SMS环节,无注册动作

问题:如何通过WTelegramClient自动化新账号注册?是否需要提前进行手动操作以确保注册流程正常触发?


解决方案

1. 明确注册流程的触发逻辑

WTelegramClient的注册流程必须严格遵循Telegram API的步骤,卡在SMS环节大多是因为没有正确处理注册的前置请求或分支判断:

  • 调用SignUp前,必须先通过SendCode请求获取验证码,且要正确接收返回的auth.SentCode对象
  • 要区分登录与注册流程:当SendCode返回的type为auth.sentCodeTypeSms,且该手机号无关联已注册账号时,才进入注册流程,而非默认走登录逻辑

2. 核心代码实现示例

以下是触发注册流程的关键代码片段:

// 初始化客户端,传入新手机号相关配置
using var client = new WTelegramClient(Config);
// 发送验证码请求
var sentCode = await client.Auth.SendCode(new_phone_number: "+你的新手机号", api_id: 你的API_ID, api_hash: "你的API_HASH");
// 对接短信接收服务获取验证码(这里示例为手动输入)
string smsCode = "收到的6位验证码";
// 执行注册,first_name为必填项,last_name可选
var registeredUser = await client.Auth.SignUp(sentCode.phone_code_hash, smsCode, "你的用户名", "");
// 注册完成后即可启动消息转发逻辑

3. 无需提前手动操作,但需注意限制

  • 不需要提前手动注册该手机号,只要手机号未注册过Telegram,代码即可触发注册流程
  • 注意Telegram的API限制:新手机号可能触发人机验证(如验证码拼图、语音验证码),此时SendCode会返回auth.SentCodeTypeCall或auth.TermsOfService等特殊类型,必须在代码中处理这些分支,否则会卡在流程中
  • 确保你的API ID和API Hash已在Telegram开发者平台正确配置(完成账号绑定等基础操作)

4. 卡壳问题的常见排查点

  • 代码误将注册流程走成登录流程:比如调用了Auth.SignIn而非Auth.SignUp
  • 未正确传递SendCode返回的phone_code_hash参数,导致SignUp请求失败
  • 手机号所在地区存在Telegram注册限制,或该手机号已被标记为异常账号

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:41:00