一份客户名单跑完 Telegram 检测,结果可能是一大片“未开通”,可能是很多行报格式错误,也可能是任务跑到一半停了。多数情况下检测本身没有坏,问题通常出在四个地方:
- 号码格式不规范:缺国际区号、带本地前导零、夹杂符号,或位数不对。
- 用户的隐私设置:用户在 Telegram 里限制了谁能通过手机号找到自己,已注册的账号也会匹配不到。
- 号码对应的账号已被封禁或注销。
- 频率限制:用自己的账号或脚本批量查询时,会触发 Telegram 的 FLOOD_WAIT 限制,任务因此中断。
另外,多国号码混在一个文件里、空号没有提前过滤,会让上面每个问题都更严重。排查时先判断失败出在哪一层,再对症处理,不要直接重跑整份名单。

先分清是哪一种“失败”
“筛号失败”在实际工作里通常指三种情况,原因各不相同:
- 任务没跑完或中途中断:常见于自己用账号或脚本查询,多半是频率限制造成的。
- 大量行被判为格式非法或无法识别:问题在名单本身,可以修好后重新提交。
- 格式没问题,却有很大比例返回未开通或未匹配:这一类要分开看。其中有真没注册的,也有被隐私设置挡住的,还有被封或已注销的。
先在结果里数一下:格式类错误占多少,未匹配占多少。格式类错误占比高,从第一步查起。格式基本干净但未匹配很多,直接看后面隐私和封禁两节。
第一步:查格式,这类问题最常见,也最好修
Telegram 要靠准确的国家区号和号段来识别号码。号码不是国际标准格式(E.164,即“+国家代码+本国号码”,中间没有任何符号)时,在入口校验阶段就会被判为非法或无法识别,根本走不到账号匹配那一步。
名单里常见的几种写法和改法:
- 带本地前导零:英国手机号常写成
07700 900123,正确写法要去掉开头的 0,再加上 44,变成+447700900123。很多国家的本地写法都有这个 0,规范化时要统一去掉。 - 缺国际区号:比如一个 10 位的美国号码没写
+1。单看一个 10 位号码,很难判断它属于哪个国家,硬猜区号会造成大批错配。正确的做法是回到名单来源,按客户所在国家这一列补区号。 - 夹带空格、括号、破折号:
(415) 555-0123这类写法要清洗成+14155550123。 - 位数超出该国号段规范:通常是录入错误或两个号码粘在一起,这类行单独挑出来人工核对,不要直接提交。
名单如果在表格软件里打开、保存过,还要多查两样:开头的 0 是否被自动吞掉,长号码是否变成了科学计数法。号码列存成文本格式可以避免这两个问题。
格式统一之后再去重。原始名单里 07700900123 和 +44 7700 900123 看起来是两条,规范化以后其实是同一个号码。完整的清洗顺序可以参考 Telegram客户名单清洗怎么做。
第二步:多国名单拆开跑,空号先过滤
做跨境业务的名单,常常把不同国家的号码混在一个文件里,里面还夹着早已失效的空号。这样直接提交,脏数据比例高,检测会变慢,结果里的噪点也多。出问题时,你也分不清是哪个国家的格式出了错。
更稳妥的顺序是:
- 按国家或地区拆成多个文件,每个文件单独检查格式。各国的号码格式和主流平台,可以在区域方案页按国家查。
- 先做一轮号码基础检测,把空号、高风险号筛出去,再做 Telegram 检测。这样 Telegram 结果里的“无效”,基本就只剩平台层面的原因。
- 再提交 Telegram 检测。
用 NexCheck 处理时,可以在控制台上传整理好的 txt 或 csv 文件;如果要接进自己的 CRM,就用 REST API 提交,检测完成后通过 Webhook 回推结果。结果按有效和无效分组返回,按条计价。Telegram 能查哪些检测项、单价多少会有调整,以 Telegram 平台页上的当前清单为准。
第三步:格式没问题却大面积“未匹配”,先考虑隐私设置
Telegram 的“隐私与安全”里有一项设置:谁可以通过我的手机号找到我(Who can find me by my phone number)。用户把它设为“仅我的联系人”后,只要查询方不在这个用户的通讯录里,用手机号就查不到这个账号。
所以,一个号码明明注册了 Telegram,在检测结果里也可能显示为未匹配或未开通。这是平台的隐私规则,依赖手机号查找的检测方式都会受这个限制,也不应该去想办法绕过它。
处理名单时要记住一点:“未匹配”的意思是“目前无法通过手机号确认此人在 Telegram 上”,不等于“此人不用 Telegram”。 注重隐私的用户群体越多,这部分比例就可能越高。匹配原理和隐私限制的详细说明,可以看 Telegram号码是否注册怎么查。
账号被封禁或已注销的号码
有些号码属于合规的运营商号段,格式也没问题,但对应的账号状态不正常:
- 账号因为发过垃圾消息,或者是用临时虚拟号、接码平台注册的,被 Telegram 风控拦截,号码显示“已被封禁”(Phone number is banned)。
- 账号长期没有登录,被系统注销。
这类号码查不到有效的活跃账号,返回无效是正常结果。名单越旧、来源越杂,这类号码的占比通常越高。如果一批名单的无效比例明显高于平时,可以先回头查一下这批数据的来源和收集时间。
任务中断、报 FLOOD_WAIT:自己批量查询触发了频率限制
如果团队之前是用自己的 Telegram 账号或脚本做批量查询,任务跑到一半停下、报错,大概率是触发了频率限制。Telegram 对通讯录导入和联系人匹配接口(contacts.importContacts)有严格的调用频率和配额限制。查询太频繁时,服务器会返回 420 类的 FLOOD_WAIT 错误,并要求等待一段时间,从几十秒到几个小时不等。
这时不要反复重试。在冷却期内继续请求,可能升级成 PEER_FLOOD 之类的限制,账号可能被限制,甚至被封。用于查询的账号如果是业务在用的工作号,损失就更大了。这类中断说明“用个人账号批量查名单”这个方式本身不适合,跟名单质量无关。名单量大、需要定期复查的,交给专门的检测服务处理更合适。
现象与处理对照
| 你看到的现象 | 可能原因 | 先做什么 |
|---|---|---|
| 大量行报格式非法、无法识别 | 缺区号、带前导零、有符号、位数不对 | 统一转成 E.164,再去重,然后重新提交 |
| 某一个国家的号码几乎全部无效 | 这个国家的区号或前导零处理错了 | 单独抽查这个国家的几条原始号码和转换后的号码 |
| 格式干净,但未匹配比例偏高 | 用户隐私设置,加上确实没注册 | 标记为“Telegram 未匹配”,保留客户记录 |
| 老名单无效比例明显升高 | 账号被封禁、长期未登录被注销 | 查数据来源和收集时间,考虑先做基础检测 |
| 自建查询中途停止、报 420 | FLOOD_WAIT 频率限制 | 立即停止重试,改用检测服务 |
结果写回 CRM:不要把“未匹配”当成删号依据
检测结果写回 CRM 时,建议至少分三个字段记录,不要只写一个“有效/无效”:
- 格式状态:提交前清洗时就能确定。格式有问题的行修正后重新检测,不进 Telegram 结果。
- Telegram 检测结果:有效或无效。结果里如果能区分具体原因,就分别记下来。
- 检测日期:账号状态会变,过一段时间可以复查。
格式问题在提交前处理掉以后,无效组里剩下的主要就是平台层面的原因:没注册、被隐私设置挡住、被封禁或已注销。从结果里很难把这几种逐条分清。所以对“Telegram 未匹配”的客户,更合适的做法是保留记录、打上标签,按业务需要再查其他平台,不要整批删除。
名单整理好、按国家拆分以后,到 Telegram 平台页确认当前的检测项和单价,再决定用控制台上传还是用 API 接入。
NexCheck-筛号平台
评论(0)