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

如何在Telethon中处理用户进出群组的Telegram系统消息?

在Telethon中处理群成员进出的系统消息

Telethon 无法通过 events.NewMessage 捕获群成员进出的系统通知,你需要使用**events.ChatAction**事件处理器——它专门用于监听群聊内的各类操作事件,包括成员加入、退出、被踢等场景。

基础实现示例

直接通过事件属性判断成员进出行为,发送对应消息:

from telethon import events

@bot.on(events.ChatAction)
async def handle_group_actions(event):
    # 处理新成员入群(含主动加入、被邀请)
    if event.user_joined:
        user = await event.get_user()
        await event.reply(f"欢迎 {user.first_name} 加入群组!😊")
    
    # 处理成员退群(含主动退出、被踢出)
    elif event.user_left:
        user = await event.get_user()
        await event.reply(f"{user.first_name} 离开了群组,再见!👋")

精准区分场景(可选)

如果需要区分成员是主动退出还是被管理员踢出,可以额外判断 event.kicked 属性:

from telethon import events

@bot.on(events.ChatAction)
async def handle_group_actions(event):
    if event.user_joined:
        user = await event.get_user()
        await event.reply(f"欢迎 {user.first_name} 来到我们的群组!")
    elif event.user_left:
        user = await event.get_user()
        if event.kicked:
            await event.reply(f"{user.first_name} 被移出了群组")
        else:
            await event.reply(f"{user.first_name} 主动退出了群组,一路顺风!")

额外提示

  • 确保机器人拥有群组的管理员权限,否则可能无法正常发送消息或获取事件细节
  • 若只需监听特定群组,可在装饰器中通过 chats 参数指定群组ID或用户名:
    @bot.on(events.ChatAction(chats=[123456789, "my_group_username"]))
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:05:54