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

如何获取公开群组新用户的邀请人?chat_join_request无invite_link解决方案

解决Telegram Bot关联新用户与邀请人的问题

核心问题说明

chat_join_request事件触发时,用户还未正式加入群组,Telegram官方不会在此事件的消息对象中返回邀请链接或邀请人信息,所以你无法直接从msg中获取invite_link属性。

可行解决办法

方法1:使用chat_member事件(推荐)

当用户成功加入群组后,chat_member事件会被触发,此时的更新对象中包含完整的invite_link信息,可直接关联邀请人与新用户。

示例代码:

bot.on('chat_member', async (update) => {
  const chatMemberUpdate = update.chat_member;
  // 仅处理用户加入群组的动作
  if (chatMemberUpdate.new_chat_member.status === 'member') {
    const inviteLink = chatMemberUpdate.invite_link;
    if (inviteLink) {
      // 获取邀请人信息
      const inviterId = inviteLink.creator.id;
      const inviterUsername = inviteLink.creator.username;
      // 获取新用户信息
      const newUserId = chatMemberUpdate.new_chat_member.user.id;
      
      console.log(`新用户 ${newUserId} 通过用户 ${inviterId}(${inviterUsername}) 的邀请链接加入`);
      console.log(`邀请链接:${inviteLink.invite_link}`);
      
      // 这里可以执行关联逻辑,比如存入数据库
    }
  }
});

注意:需要确保你的Bot是群组管理员,且拥有manage_chat权限,否则无法获取invite_link字段。

方法2:自定义邀请链接参数(申请阶段关联)

如果需要在用户提交加入申请时就完成关联,可提前为每个邀请人生成带唯一标识的邀请链接,通过参数匹配关联:

  1. 生成邀请链接时,添加自定义start_param参数,比如给邀请人ID为123的用户生成链接时,设置start_param=inviter_123;
  2. 用户点击该链接后,会先触发Bot的start命令,此时可将用户ID与start_param中的邀请人标识存入数据库;
  3. 当chat_join_request事件触发时,通过用户ID从数据库中查询对应的邀请人标识,完成关联。

示例代码片段:

// 处理start命令,存储用户与邀请人的关联
bot.onText(/\/start (.+)/, async (msg, match) => {
  const userId = msg.from.id;
  const inviterTag = match[1]; // 获取inviter_123这样的标识
  // 存入数据库,比如key为userId,value为inviterTag
  await db.set(`user_${userId}_inviter`, inviterTag);
});

// 处理加入申请,查询关联信息
bot.on('chat_join_request', async (msg) => {
  const userId = msg.from.id;
  const inviterTag = await db.get(`user_${userId}_inviter`);
  if (inviterTag) {
    console.log(`用户 ${userId} 的邀请人标识为:${inviterTag}`);
    // 执行关联逻辑
  }
});

注意:这种方法依赖用户点击带参数的链接后触发start命令,若用户直接搜索群组申请加入,会无法匹配到邀请人。


内容的提问来源于stack exchange,提问作者BoJack Sam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 05:45:14