如何通过Telegram Bot添加用户?求替代方案及客户端示例
Telegram Bot 添加用户的替代方案与客户端实现示例
可行的替代方案
- 基于MTProto协议的客户端模拟:标准Telegram Bot API受权限限制,无法主动添加用户,但借助Telegram底层的MTProto协议,可模拟普通用户客户端的行为完成好友添加。这种方式需要使用个人账号的
api_id和api_hash(而非Bot Token),操作时需注意避免触发反垃圾机制,频繁批量添加可能导致账号受限。 - 引导用户主动互动:如果无需主动发起添加,可设计Bot引导用户发送消息、点击专属链接或触发对话,此时Bot能通过API获取用户ID,进而完成后续的群组邀请、消息推送等操作,这是符合官方规则的合法路径。
- 利用群组/频道邀请机制:若目标是让用户加入特定群组或频道,可生成专属邀请链接,Bot将链接发送给目标联系人(需Bot能获取到联系人信息),引导对方主动点击加入,绕开主动添加好友的限制。
客户端实现示例(Python + Telethon)
Telethon是常用的MTProto协议Python库,以下是实现添加用户的示例代码:
安装依赖
pip install telethon
实现代码
from telethon import TelegramClient from telethon.tl.functions.contacts import AddContactRequest from telethon.tl.types import InputPhoneContact # 替换为你的个人账号信息 api_id = 123456 # 从Telegram官方开发者平台获取 api_hash = "your_api_hash_here" phone_number = "+1234567890" # 初始化客户端会话 client = TelegramClient("add_contact_session", api_id, api_hash) async def add_target_contact(target_phone, first_name, last_name): # 构造联系人对象 input_contact = InputPhoneContact( client_id=0, phone=target_phone, first_name=first_name, last_name=last_name ) # 发送添加好友请求 result = await client(AddContactRequest(contacts=[input_contact])) print(f"添加请求结果: {result}") async def main(): # 登录客户端(首次需输入验证码) await client.start(phone_number) # 替换为目标用户的手机号和姓名 await add_target_contact("+0987654321", "测试", "用户") await client.disconnect() if __name__ == "__main__": import asyncio asyncio.run(main())
注意事项
- 需先在Telegram官方开发者平台注册账号,获取
api_id和api_hash - 首次运行会要求输入验证码,验证后生成会话文件,后续运行无需重复验证
- 避免批量频繁操作,防止触发Telegram的账号限制机制
内容的提问来源于stack exchange,提问作者J.Fore
相关产品推荐
相关产品推荐

