许多Telegram用户在批量注册账号或搭建自动化机器人时,会遇到一个核心难题:如何高效、稳定地获取国外手机号并完成短信验证。手动购买实体SIM卡不仅成本高昂,且无法满足大量注册需求。Telegram接码API正是为解决这一问题而生,它允许开发者通过编程接口,自动申请临时手机号、接收验证码,从而绕过人工操作的繁琐流程。但新手往往对API的调用方式、平台选择、费用结算感到困惑,甚至因操作不当导致账号被封。
本教程将手把手教你从选择接码平台、获取API密钥,到编写代码完成验证的全流程,并涵盖常见故障的排查方法,确保你能够安全、高效地使用接码API。
准备接码平台的账号与API密钥
在调用任何接码API之前,你需要先注册一个支持Telegram服务的接码平台账号,并获取专属的API密钥。常见的平台包括SMS-Activate、5SIM、TextVerified等,它们均提供临时手机号用于接收Telegram验证码。
具体操作说明:
- 打开接码平台官网(如SMS-Activate),点击“注册”按钮,使用邮箱或Telegram账号完成注册。注册后登录控制面板。
- 在控制面板中找到“API”或“开发者”选项,点击“生成API密钥”。系统会生成一串由字母和数字组成的密钥(例如:
123456AbcDefGhiJ)。请复制并妥善保存该密钥,它将在后续所有API请求中作为身份凭证。 - 返回控制面板,确保账户内有足够余额。接码服务通常按次收费,Telegram验证码的价格约为0.1-0.5美元/次。点击“充值”按钮,通过加密货币或第三方支付完成充值。
注意事项/小提示:
- 不同平台的API密钥格式不同,部分平台需要设置IP白名单。建议将你的服务器或本地IP添加到白名单中,防止密钥被盗用。
- 首次使用建议先充值少量金额(如1美元),测试API调用是否成功后再进行批量操作。
- 避免使用免费或非主流接码平台,这类平台号码池小、存活率低,容易导致验证码接收失败或号码被占用。
备用方案:
- 如果注册时无法接收验证邮件,尝试更换邮箱(如Gmail、Outlook)或使用临时邮箱服务。
- 若平台不支持Telegram登录,优先使用邮箱注册,并检查垃圾邮件文件夹。
获取Telegram服务的国家代码与产品ID
接码API需要明确指定你要接收短信的服务类型(Telegram)以及手机号所属的国家。不同平台对服务的标识方式不同,通常使用数字ID或字符串名称。你需要先查询Telegram对应的产品ID和国家代码。
具体操作说明:
- 访问接码平台的API文档页面,查找“服务列表”或“产品ID”章节。例如在SMS-Activate中,Telegram对应的服务ID是
tg,而在5SIM中可能是telegram。记录下这个ID。 - 在API文档中找到“国家代码”列表。Telegram支持全球多数国家,常见的有俄罗斯(
ru)、印度尼西亚(id)、美国(us)等。选择你需要的国家代码,例如ru。 - 使用浏览器或API调试工具(如Postman)发送一个测试请求,验证ID是否正确。例如:向
https://api.sms-activate.org/stubs/handler_api.php?api_key=你的密钥&action=getNumbers&country=ru&service=tg发送GET请求。返回的JSON数据中会包含可用的手机号列表。
注意事项/小提示:
- 不同平台对国家的定义可能不同,例如俄罗斯在某些平台中代码为
22,而非ru。务必查阅平台官方文档,不要凭经验猜测。 - 部分平台要求先指定运营商(如Beeline、MTS),否则无法获取号码。在请求参数中可添加
operator字段。 - 测试时如果返回错误码(如
NO_BALANCE或NO_NUMBERS),说明余额不足或该国家号码已耗尽,需更换国家或充值。
备用方案:
- 如果平台文档未明确列出产品ID,可尝试在控制面板的“购买号码”页面手动选择Telegram服务,然后查看浏览器地址栏中的参数,从中提取ID。
- 使用平台提供的SDK(如Python库
smsactivate)自动获取ID,避免手动拼接URL。
调用API获取临时手机号
确认产品ID和国家代码后,下一步是通过API向平台申请一个临时手机号。该手机号将用于接收Telegram的注册或登录验证码。
具体操作说明:
- 构造API请求URL,格式通常为:
https://api.平台域名.com/方法名?api_key=密钥&action=方法&service=服务ID&country=国家代码。以SMS-Activate为例,获取号码的请求为:https://api.sms-activate.org/stubs/handler_api.php?api_key=你的密钥&action=getNumber&service=tg&country=ru。 - 发送请求后,平台会返回一个包含手机号的结果。例如返回字符串
ACCESS_NUMBER:123456789:79991234567,其中123456789是激活ID(用于后续查询验证码),79991234567是分配的手机号。 - 记录下激活ID和手机号。手机号通常以国家代码开头(如+7),在Telegram注册界面直接输入该号码即可。
注意事项/小提示:
- 获取号码后,平台会开始计时(通常为10-20分钟),超时未收到验证码则号码会被回收且费用不退。因此请尽快在Telegram中发起注册或登录请求。
- 如果返回错误
NO_BALANCE,请检查余额;如果返回NO_NUMBERS,请尝试更换国家或稍后再试。 - 每个激活ID对应一个唯一号码,请不要重复获取,以免浪费余额。
备用方案:
- 如果平台返回的号码格式不完整(如缺少国家代码),手动在号码前添加
+和国家代码(如+7)。 - 部分平台支持通过WebSocket实时推送验证码,可优先使用此方式,避免轮询。
在Telegram中发起注册请求并等待验证码
拿到临时手机号后,你需要立即在Telegram的注册或登录页面输入该号码,并触发验证码发送。此时,接码平台会拦截发送到该号码的短信,并通过API返回验证码内容。
具体操作说明:
- 打开Telegram客户端,选择“注册新账号”或“登录”。在输入手机号界面,选择与国家代码对应的国家(如俄罗斯+7),然后输入从接码平台获取的完整手机号(包括国家代码后的数字)。
- 点击“下一步”,Telegram会向该号码发送一条包含验证码的短信。此时不要关闭Telegram界面,等待验证码。
- 同时,向接码平台发送查询验证码的API请求。例如SMS-Activate的查询请求为:
https://api.sms-activate.org/stubs/handler_api.php?api_key=密钥&action=getStatus&id=激活ID。返回结果可能为STATUS_OK:12345,其中12345就是验证码。
注意事项/小提示:
- 如果Telegram提示“号码已注册”,说明该号码被其他人使用过。立即在接码平台取消该激活(通过
setStatus方法将状态设为取消),并重新申请新号码。 - 验证码通常会在30秒到2分钟内到达。如果超过3分钟仍未收到,请检查接码平台的状态码:若返回
STATUS_WAIT_CODE,说明仍在等待;若返回STATUS_CANCEL,说明号码被取消。 - 部分平台支持设置回调URL,当验证码到达时自动通知你的服务器,避免手动轮询。
备用方案:
- 如果Telegram发送的是语音验证码而非短信,接码平台可能无法接收。此时需要选择支持语音验证码的平台(如5SIM),或更换国家。
- 若多次查询仍无结果,可尝试在Telegram中点击“重新发送验证码”,但注意不要超过3次,否则可能触发风控。
验证结果并完成账号注册
成功获取验证码后,将其输入Telegram的验证界面,完成注册或登录。同时,你需要在接码平台中标记该号码为“已使用”,以释放资源并停止计费。
具体操作说明:
- 在Telegram验证码输入框中,填入从接码API获取的验证码(如
12345)。点击“确认”,等待Telegram完成账号创建。如果一切正常,你会进入设置昵称和头像的页面。 - 返回接码平台,发送请求将激活状态设置为“已完成”。例如SMS-Activate的请求为:
https://api.sms-activate.org/stubs/handler_api.php?api_key=密钥&action=setStatus&id=激活ID&status=6(其中6代表已完成)。 - 确认平台账户中该次服务的费用已被扣除,且余额正确。如果未扣除,说明号码未成功使用,可申请退款。
注意事项/小提示:
- 完成注册后,建议立即在Telegram中绑定邮箱或设置两步验证,防止账号因临时手机号失效而无法找回。
- 不要立即注销或删除临时号码,部分平台要求保留激活记录至少24小时,用于后续争议处理。
- 如果验证码输入后Telegram提示“验证码错误”,可能是输入错误或验证码已过期。重新获取验证码时,需先取消当前激活,再申请新号码。
备用方案:
- 如果Telegram注册失败(如提示“操作过于频繁”),请更换IP地址或使用代理,并等待1小时后再试。
- 对于批量注册场景,建议每次注册间隔至少30秒,并随机化操作行为,避免被Telegram判定为机器人。
常见问题补充
问:调用API时返回“BAD_KEY”错误怎么办?
答:检查API密钥是否复制完整,注意大小写和空格。如果密钥中包含特殊字符,确保在URL中进行了URL编码。另外,确认密钥未过期,部分平台密钥有效期仅为30天。
问:获取号码后,Telegram收不到验证码怎么办?
答:首先检查接码平台的状态码,确认号码是否处于“等待验证码”状态。其次,更换国家或运营商,某些国家的号码接收延迟较高。最后,确保你使用的Telegram客户端版本不是过旧的,老版本可能使用不同的验证码发送机制。
问:使用接码API注册的账号容易被封吗?
答:是的,Telegram对批量注册和虚拟号码有严格风控。建议使用高质量IP(住宅代理)、每次注册间隔随机化、避免同一IP注册多个账号。如果账号被封,可尝试向Telegram官方申诉,但成功率较低。
问:接码平台支持哪些国家?如何选择最便宜的国家?
答:不同平台支持的列表不同,常见低成本国家包括俄罗斯、印度尼西亚、菲律宾等。在平台API文档中可查询价格表,通常俄罗斯号码最便宜且存活率高。但要注意,部分国家号码可能被Telegram限制用于注册。
总结:使用Telegram接码API的核心在于选择可靠平台、正确获取产品ID、快速完成号码申请与验证码接收,并在操作后及时标记状态,同时通过更换IP和随机化操作降低封号风险。