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

Telegram Bot API:如何判断用户是否通过邀请链接加入群组?

判断用户是否通过Telegram邀请链接加入群组的方法

嘿,这个问题我之前也折腾过!Telegram Bot API确实没有一个直接的字段能告诉你用户是不是通过邀请链接加入的,但有几个实用的间接方法可以帮你实现这个判断:

  • 借助自定义邀请链接和ChatMemberUpdated的invite_link字段
    首先,你需要通过Bot的createChatInviteLink接口创建专属的邀请链接,给每个链接设置唯一的name参数(比如用来标记渠道:"知乎引流"、"好友分享")。当用户通过这个链接加入群组时,Bot会收到ChatMemberUpdated类型的Update,其中的invite_link字段会包含这个链接的详细信息(包括你设置的name)。如果这个字段不存在,基本就能确定用户是通过搜索群组、直接输入群组ID/通用链接,或者被管理员直接拉进群的。

    给你个Python示例(用python-telegram-bot库):

    from telegram import Update
    from telegram.ext import CallbackContext
    
    def handle_chat_member_update(update: Update, context: CallbackContext):
        chat_member_change = update.chat_member
        # 只处理用户加入成为普通成员的情况
        if chat_member_change.new_chat_member.status == "member":
            invite_link_info = chat_member_change.invite_link
            if invite_link_info:
                print(f"用户通过邀请链接加入!链接标识: {invite_link_info.name}")
            else:
                print("用户未通过邀请链接加入(可能是搜索、管理员添加等)")
    
  • 需要注意的特殊情况
    有几个例外场景要留意:

    • 如果用户是被群组管理员手动添加进群的,invite_link字段同样不会出现。
    • 非Bot创建的默认群组链接、或者非常旧的邀请链接,可能无法被API识别,这时候invite_link也会为空,这种情况就没法区分了。

内容的提问来源于stack exchange,提问作者Dima Voronenkov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:33:05