# ChatGPT Team Management Bot 这是一个基于 Go 和 Telegram Inline Keyboard 交互实现的 ChatGPT Team 会费/发车账号自动管理机器人。 它可以帮助车队车长或团队管理员,全自动地实现 ChatGPT Team 成员的邀请分发、账号容量检测、过期踢人管理等一系列繁琐操作。 ## 🌟 核心功能 * **💳 账密 / RT 登录支持**:支持直接使用账号密码登录,或通过提供 Refresh Token 导入 ChatGPT Team 账号。 * **👥 容量自动检测与制约**:根据预设的 `TeamCapacity`(每车容量限制,默认 6 人),机器人会自动检测当前使用人数和待处理的邀请数,确保不超卖。 * **🎫 兑换码自动派发**:能够一键生成防伪兑换码,配合发卡平台使用。在额度允许范围内计算并生成指定数量的可用邀请码。 * **🎲 随机发车**:针对没有明确邀请目标的用户,支持随机邀请功能,拉人成功后自动核销兑换码。 * **📩 待处理邀请管理**:方便地查看和取消那些长期未接受的“占位邀请”,释放车位。 * **🛡️ Token 自动检测与踢人拦截**:内置定时器(Cron)自动检查失效或封号状态(HTTP 401/402)。遇到封禁会自动将其拦截保护。 * **👑 多管理员管理**:支持从配置文件设定超级管理员,同时超级管理可以在机器人端内直接添加、移除下级的动态管理员。 * **🕹️ 纯 Inline 按钮交互**:彻底告别手敲命令,99% 的操作(翻页、选择、删除、确认)全部通过直观的 Telegram 底部内联按钮菜单完成。 --- ## 🚀 部署配置 项目支持通过 `go build` 本地运行,也可通过 `Docker` 和 `docker-compose` 快速部署。 ### 1. 环境准备 需要准备好以下环境: * **PostgreSQL 数据库** 实例。 * **Telegram Bot Token** (通过 [@BotFather](https://t.me/BotFather) 申请)。 * 运行环境:Golang 1.21+ (若使用 Docker 则无需关心此项)。 ### 2. 配置文件设定 复制示例环境变量文件: ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```env # 你的 PostgreSQL 数据库连接地址 DATABASE_URL=postgres://user:password@localhost:5432/dbname?sslmode=disable # 管理员的 Telegram User ID (逗号分隔多个,拥有添加新管理员权限的超管) ADMIN_IDS=12345678,87654321 # 机器人的 Token TELEGRAM_BOT_TOKEN=123456789:ABCDefghIJKLxxxx_xxxx # 代理 URL,防止被 ChatGPT 屏蔽(若不需要可留空) PROXY_URL=http://127.0.0.1:7890 # 自动检查 Token 以及账号健康度的周期 (分钟) TOKEN_CHECK_INTERVAL=30 # 每个 Team 账号允许的最大人数容量 (包含车长自己) TEAM_CAPACITY=6 ``` ### 3. 使用 Docker 部署 (推荐) 如果你熟悉 docker: ```bash # 假如你已经配置好 docker 和 docker-compose docker build -t gpt-team-bot . docker run -d --name gpt-team-bot --env-file .env --restart always gpt-team-bot ``` ### 4. 本地编译运行 ```bash go mod tidy go build -o bot ./cmd/ ./bot ``` --- ## 🛠️ 后台菜单介绍 打开机器人发送 `/start` 或者任意内容,管理员会自动看见操作主菜单。 * **📋 账号列表后台** * **🔑 RT添加账号 / 🔑 账密登录**:导入 ChatGPT Team 账号的通道。 * **🗑️ 删除账号 / 🔄 刷新账号**:支持分页查询管理现有账号。 * **📩 待处理邀请**:列出发送过但未被接受的邀请,可一键取消。 * **🎫 兑换码管理** * **➕ 生成兑换码**:基于当前没满的车位自动生成。 * **📋 查看兑换码**:分页查看当前所有没使用的兑换码。 * **🗑️ 一键清空未使用**:作废没用完的邀请码。 * (可以直接在菜单里点击单条代码的垃圾桶对应删除)。 * **🤖 系统与权限** * **👑 管理员设置**:增删可以操作面板的下级子管理。 * **✅ 强制检测 / 🔄 强制刷新全部**:忽略定时器立刻轮询所有管理的账号。 ## 📝 开发与维护 * 主要基于 `go-telegram-bot-api/telegram-bot-api/v5` 进行开发。 * API 获取利用了 ChatGPT `/backend-api/accounts/check/` 与 `/backend-api/team/` 接口通信,遇到风控需及时更新代理或验证机制 (`internal/chatgpt`)。 * 项目数据迁移完全通过内部启动时的原始 SQL 构建 (`internal/database`),首次启动自动建表。 ## 📄 License MIT License.