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

如何通过手机号获取未互动Telegram用户ID?附报错及代码

问题解答:无法通过未互动通讯录用户的手机号获取Telegram ID及报错处理

核心疑问解答

首先明确说:你没办法获取到这个用户的Telegram ID,这是由Telegram的隐私机制决定的:

  • 虽然对方在你的通讯录里,但对方并不知道你的手机号(也就是你不在对方的通讯录中),加上你们从未有过互动,再结合Telegram默认的隐私设置(不允许陌生人通过手机号定位到自己),平台不会向你暴露该用户的实体信息。
  • 只有满足以下任一条件时,你才能通过手机号获取对方的ID:
    • 对方把你的手机号也加入了他的通讯录;
    • 对方调整了隐私设置,允许「任何人」通过手机号找到自己;
    • 你已经向对方发送过消息(哪怕对方还没查看或回复),建立了互动关系。

报错原因与代码优化

你遇到的 ValueError: Cannot find any entity corresponding to "+xxxxxxxxxxx" 报错,本质就是上面提到的权限问题——Telegram API找不到对应手机号的用户实体,因为平台限制了你的访问权限。

可以给代码加上容错处理,避免程序直接崩溃,同时清晰反馈问题:

for mobile in newuser['Mobile']:
    mob = '+91' + str(mobile)
    try:
        user = await clients.get_entity(mob)
        print(user)
    except ValueError as e:
        print(f"无法获取手机号 {mob} 对应的用户实体:{str(e)}")

额外提示

  • 不要尝试绕过Telegram的隐私规则,这不仅违反平台条款,还可能导致你的账号被临时限制甚至永久封禁。
  • 如果确实需要联系该用户,建议通过其他渠道告知对方你的手机号,让对方添加你到通讯录;或者直接尝试给对方发送Telegram消息(如果对方允许陌生人发消息),互动后就能正常获取其ID了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 14:17:40