如何关联Web应用已登录userId与加入站点Telegram群组的用户身份
实现方案
完全可以实现,核心逻辑是给每个站点访问用户生成专属带标识的Telegram群组邀请链接,通过机器人监听加入来源匹配用户信息,具体操作步骤如下:
- 首先把你创建的机器人添加为目标Telegram群组的管理员,给机器人开通「邀请用户」「管理邀请链接」两项权限,这是调用相关接口的必要前提。
- 当用户访问你的站点时,生成一个唯一标识(可以是用户在你站点的UID、也可以是随机生成的trace ID),将该标识和当前站点用户的关联信息预先存入数据库。
- 调用Telegram Bot API的
createChatInviteLink方法,将刚才生成的唯一标识填入接口的name参数,该参数为邀请链接的专属备注,仅机器人可读取,不会对外暴露给普通用户。 - 将接口返回的专属邀请链接作为站点上Telegram按钮的跳转地址,确保每个用户点击按钮时拿到的是和自己标识绑定的专属链接。
- 提前给BotFather发送指令开启机器人的
chat_member更新接收权限,同时关闭隐私模式,确保机器人可以监听到群组成员变动事件。 - 当有新用户加入群组时,你会收到
chat_member类型的更新事件,从事件中可以直接读取到新用户的user_id、username信息,同时可以获取到该用户加入时使用的邀请链接的name参数,匹配到数据库中预先存储的对应标识,完成信息写入即可。
注意事项
- 不要尝试通过第三方跳转、URL自定义参数的方式传递用户标识,Telegram客户端跳转不会携带外部来源的自定义参数,只有官方提供的带参邀请链接功能可稳定获取加入来源。
- 若你的群组开启了入群审核,需要在用户通过审核后再触发信息匹配逻辑,审核阶段的成员变动事件不会包含有效邀请链接信息。
内容的提问来源于stack exchange,提问作者Edgar Petrosyan
相关产品推荐
相关产品推荐

