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

Telegram Bot使用requestContact获取用户手机号是否安全?能否避免发送他人联系人?

回答:Telegram机器人获取手机号的安全性问题

用户问题:
我通过以下代码实现获取用户手机号的功能:

KeyboardRow row = new KeyboardRow();
row.add(KeyboardButton.builder()
        .text("contact")
        .requestContact(true)
        .build());

请问该方式是否安全?比如是否存在用户发送他人联系人的情况?

你用的这种方式并非绝对安全,用户确实可以发送他人的联系人信息。

核心原因:

  • 当设置requestContact=true时,Telegram客户端会直接唤起用户的本地通讯录列表,用户能自由选择列表里的任意联系人(不管是自己的手机号,还是通讯录里其他人的)发送给机器人,这个机制本身没有限制只能发送用户本人的号码。
  • 用户可能是误操作选错号码,也有可能故意提交非本人的联系人信息。

若要确保获取的是用户本人手机号,可参考这些方案:

  • 验证码验证:机器人向获取到的手机号发送验证码,要求用户输入验证,以此确认用户拥有该号码的使用权。
  • 调用Telegram API获取绑定手机号:如果用户已经授权机器人获取个人信息,可以直接读取User对象中的phone_number字段(这个是用户绑定Telegram的官方手机号,可信度更高,但需要用户同意权限申请)。
  • 手动输入+验证:让用户手动输入手机号,再通过验证码校验,虽然流程有点繁琐,但能最大程度避免非本人号码的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 05:54:39