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

如何自动或定时踢出/移除Telegram频道、群组成员?附Python代码参考

功能可行性结论

完全可以实现,你可以通过Telegram的MTProto协议对接Python第三方库实现自动化定时踢人逻辑,无需手动操作。
实现的前提条件:

  • 你用于对接的账号必须是对应频道/群组的管理员,且拥有「移除成员」的权限
  • 推荐使用个人管理员账号对接MTProto客户端库,相比Bot API可以直接获取成员的加入时间戳,不需要额外存储成员加入记录
实现逻辑
  1. 完成MTProto客户端的账号认证,获取对应频道/群组的唯一ID
  2. 定时拉取频道/群组的全量成员列表,读取每个成员的加入时间字段
  3. 比对当前时间与成员加入时间的差值,达到你设置的1~3个月阈值后,执行移除操作
  4. 搭配定时任务框架,可设置每日执行一次检测,不需要服务一直高频率运行
参考代码示例(基于Pyrogram)

前置准备

首先安装依赖库:
pip install pyrogram tgcrypto apscheduler
使用前需要先在Telegram官方开发者平台申请自己的api_id和api_hash,按照平台提示用你的Telegram账号验证即可获取。

代码内容

from pyrogram import Client
from pyrogram.types import ChatMember
from datetime import datetime, timedelta
from apscheduler.schedulers.blocking import BlockingScheduler

# 配置项,请替换为自己的参数
API_ID = 123456  # 替换为你申请的api_id
API_HASH = "your_api_hash_here"  # 替换为你申请的api_hash
CHAT_ID = -1001234567890  # 替换为你的频道/群组ID
EXPIRE_DAYS = 90  # 成员保留时长,此处设置为90天即3个月,可自行修改为30/60对应1/2个月

# 初始化Pyrogram客户端
app = Client("my_account", api_id=API_ID, api_hash=API_HASH)

def kick_expired_members():
    with app:
        # 拉取所有成员
        for member in app.get_chat_members(CHAT_ID):
            member: ChatMember
            join_date = member.joined_date
            if not join_date:
                continue
            # 计算加入时长
            days_since_join = (datetime.now() - join_date).days
            if days_since_join >= EXPIRE_DAYS:
                # 先封禁再立即解封,这样用户可以被重新邀请,需要永久封禁可删除unban步骤
                app.ban_chat_member(CHAT_ID, member.user.id)
                app.unban_chat_member(CHAT_ID, member.user.id)
                print(f"已移除到期成员:{member.user.id} {member.user.first_name},加入时长{days_since_join}天")

if __name__ == "__main__":
    # 首次运行先执行一次登录验证
    with app:
        print("客户端登录成功")
    # 设置定时任务,每天凌晨1点执行一次检测
    scheduler = BlockingScheduler()
    scheduler.add_job(kick_expired_members, 'cron', hour=1, minute=0)
    print("定时任务已启动,每日凌晨1点检测到期成员")
    scheduler.start()
注意事项
  • 首次运行代码会要求输入你绑定Telegram的手机号和收到的验证码,完成一次登录后本地会生成会话文件,后续不需要重复验证
  • 不要泄露你的api_id、api_hash以及本地生成的会话文件,避免账号被盗用
  • 如果需要针对不同成员设置不同的保留时长,可以额外加一个存储层记录每个成员的过期时间,检测时优先读自定义的过期时间即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 15:54:00