与 Telegram 各种 API 交互的开发者对用户电话号码数据拥有不同级别的访问权限,这主要取决于 Telegram 严格的隐私原则。这并非完全自由;相反,访问权限受到严格控制,通常需要用户明确同意。
以下是开发人员通常了解的以及可以通过 API 获取 Telegram 号码数据的操作:
1. Bot API:直接访问受限,依赖用户同意
Telegram Bot API 是开发者创建自动化工具(机器人)最常用的方式。由于隐私原因,Bot API 在用户电话号码方面受到严格限制。
-
无法直接通过用户 ID 获取电话号码:机器人无法直接请求用户的 Telegram ID 并获取其关联的电话号码。这是一项基本的隐私措施。如果真的存在,将会为数据收集打开一个巨大的漏洞。
-
“请求联系”按钮:机器人获取用户电话号码的主要方式是通过用户的明确操作。开发者可以实现一个,
KeyboardButton
并将request_contact
参数设置为true
。当用户点击此按钮时,Telegram 会显示一个提示,询问他们是否愿意与机器人分享自己的电话号码。- 用户同意是关键:用户必须明确同意分享其号码。他们也可以选择不分享。
- 一次性分享:这通常是一次性分享事件。用户分享号码后,机器人会以
Contact
对象的形式接收该信息(包含电话号码、名字、姓氏和用户的 Telegram ID)。开发者可以将该配对存储在自己的数据库中。 - 目的说明:强烈建议开发人员在请求时解释为什么需要用户的电话号码(例如,用于帐户验证、连接到外部服务)。
-
登录小部件:对于 Web 应用程序,Telegram 提供了“登录小部件”。如果用户使用此小部件 科摩罗电报号码数据 登录网站,网站可以接收某些用户数据(例如用户 ID、名字、姓氏、个人资料图片),但无法接收其电话号码,除非用户在登录过程中明确授予该权限(如果可用,这通常是一个额外的单独步骤)。
2. Telegram API(MTProto API):构建自定义客户端
Telegram API(也称为 MTProto API)是官方 Telegram 客户端(例如桌面版、iOS 和 Android 应用)用于与 Telegram 服务器通信的底层协议。开发者可以使用此 API 构建自己的自定义 Telegram 客户端。
-
更细粒度的访问(有责任):在构建完整客户端时,开发人员可以更直接地控制身份验证过程,这本质上涉及电话号码。
- 登录过程:要登录,自定义客户端需要与
auth.sendCode
和auth.signIn
(或auth.signUp
)方法进行交互,这涉及发送电话号码,然后验证发送到该号码的代码。 - 联系人管理:如果用户授予应用权限,自定义客户端可以访问用户的联系人。该
contacts.importContacts
方法允许客户端上传电话号 连接客户的方式正在改变 码列表,并接收其中哪些号码对应于 Telegram 用户。 - 电话号码可见性:自定义客户端必须尊重用户的隐私设置。如果用户已将电话号码可见性设置为“无人”或“我的联系人”,则自定义客户端无法绕过这些设置向他人透露电话号码。
- 严格监控: Telegram 明确声明所有 API 客户端库都受到严格监控,以防止滥用。如果您使用 Telegram API 进行泛洪、垃圾邮件发送、伪造订阅者和频道查看计数器,您将被永久封禁。这还包括滥用电话号码等个人数据。
- 登录过程:要登录,自定义客户端需要与
-
无法通过 ID 直接“查找”:即使使用了 MTProto API,您仍然无法简单地输入任意 Telegram 用户 ID 并在未事先关联的情况下立即获取其电话号码(例如,该用户在您的通讯录中,且已将隐私设置设置为向您显示其号码,或者他们明确共享了该号码)。该 API 旨在方便用户发起连接和授权数据访问。
3. Telegram Gateway API:业务验证
Telegram 还提供“网关 API”,专为企业设计,通过 Telegram 而不是传统的短信向用户发送验证码。
- 专为验证而构建:此 API 不适用于一般用户数据访问。其唯一用途是允许企业向已在 Telegram 上注册 手机号码 的用户的电话号码发送验证码。
- 需要输入电话号码:商家已获知用户的电话号码(例如,通过其注册流程获取),并使用 Gateway API通过 Telegram 向该号码发送验证码。商家无需从 Telegram获取该号码。
- 经济高效且安全的短信替代方案:它是一种比传统短信更便宜、更安全、更快捷的 2FA 或帐户验证替代方案。
开发者的隐私和责任
Telegram 重视用户隐私,这在其 API 设计中得到了体现。使用 Telegram API 的开发者应:
- 遵守隐私政策:遵守 Telegram 的 API 服务条款及其标准机器人隐私政策,其中概述了如何处理用户数据。我们也鼓励开发者创建自己的隐私政策。
- 仅请求必要数据:仅请求对于机器人或客户端的功能绝对必要的用户数据(如电话号码)。
- 透明:向用户清楚地解释为什么请求某些数据。
- 安全存储数据:如果开发者收集电话号码(例如,通过“请求联系”按钮),他们有责任将这些数据安全地存储在自己的服务器上,并遵守相关的数据保护法规(例如 GDPR)。Telegram 不会成为第三方机器人收集的数据的保管者。