[开源工具] Grok (x.ai) 自动注册 + SSO 转 CPA Token + 自动补货守护 一体化工具
前言
用 Grok 的大多数人都知道,x.ai 的免费额度不错,但手动注册账号太累,而且注册完拿到的只是 SSO cookie,要接入 API 网关还需要走 OAuth Device Flow 转换成 access_token / refresh_token。
之前社区里有 AaronL725 和 kaibush 的 grok-register 项目,我在这俩的基础上改了一圈,修了几个关键 bug(scope 错误、CF 拦截、Action ID 失效),加了一套自动补货守护,现在整理开源了。
项目地址
https://github.com/xinxinshuhao-create/grok-register
能干什么
一句话:注册 Grok 账号 → 提取 SSO → 转 CPA Token → 自动补货 → 接入 API 网关,全链路自动化。
核心功能
| 模块 | 脚本 | 说明 |
|---|---|---|
| 账号注册 | grok.py | curl_cffi 协议驱动,YesCaptcha 解 Turnstile,动态抓 Action ID |
| SSO → CPA 转换 | sso_to_cpa.py | OAuth 2.0 Device Flow,修正 scope,输出 access/refresh token |
| Device Flow 铸币 | device_mint.py | 修正版 scope 的 Device Flow 实现 |
| 自动补货守护 | auto_replenish.py | 定时检测账号池,不足自动注册补位 |
| Token 刷新守护 | token_daemon.py | 定时刷新 access_token,保持账号活跃 |
| Turnstile 求解器 | turnstile_solver_local.py | 本地 Patchright + Chrome,HTTP 接口 |
| 邮箱服务 | email_service.py | 支持 GPTMail / LuckMail / MailNest 三家 |
| 代理轮换 | clash_rotator.py | Clash 配置自动轮换出口 IP |
免费可用模型(Basic 账号,无需付费)
免费注册的 Basic 账号即可使用以下 3 个模型,均已实测验证:
| 模型 | 能力 | 获取方式 |
|---|---|---|
grok-chat-fast | 对话(fast 模式) | SSO token → Web 池 |
grok-imagine-image | 图片生成 | SSO token → Web 池 |
grok-4.5 | 对话 + reasoning + search,100 万 output tokens | SSO → Device Flow (sso_to_cpa.py) → Build 池 |
✅ 以上 3 个模型端到端实测通过。
付费模型(需 SuperGrok / Heavy 订阅)
以下模型在代码里支持,但需要付费账号等级:
| 模型 | 能力 | 等级 |
|---|---|---|
grok-chat-auto | 对话(auto 模式) | Super |
grok-chat-expert | 对话(expert 模式) | Super |
grok-chat-heavy | 对话(heavy 模式) | Heavy |
grok-imagine-image-quality | 图片生成(高清) | Super |
grok-imagine-image-edit | 图片编辑 | Super |
grok-imagine-video | 视频生成 | Super |
其他 Build/Console 模型(通过 Device Flow):grok-4.3、grok-4.20-0309-reasoning、grok-4.20-0309-non-reasoning、grok-4.20-multi-agent-0309、grok-build-0.1(代码/作曲,25.6 万 output)。
关键修复(踩坑记录)
1. OAuth Scope 错误
grok2api v3.1.1 内置的 Device Flow 接口(oauth.go:21)带的 scope 是错的,导致 token 铸不出来。正确的 scope 必须是 7 个:
openid profile email offline_access grok-cli:access api:access少一个都不行。这个在 sso_to_cpa.py 里已经修正,实测可以铸出 token。
2. Cloudflare JS 质询(grok-chat-fast 全 403)
某天开始 grok.com 对所有代理出口 IP 启用了 CF JS 质询,4 个节点 4 个 IP 全部 403。
根因:grok2api 对任何 403 统一调 InvalidateClearance()(manager.go:118),导致 cf_clearance 被频繁失效。
修复:egress 节点配置 cf_clearance cookie + 真实 UA(Chrome 150),配合 WebCookie 看门狗每 20 分钟探测,失败则 Patchright 刷新。
3. Action ID 失效
grok.py 动态抓取注册页的 next-action / next-router-state-tree,部署刷新后 Action ID 会变。加了 .action_id.cache 缓存 + 回退机制,间歇失败时自动重试。
快速开始
git clone https://github.com/xinxinshuhao-create/grok-register.git
cd grok-register
# 安装依赖(推荐 uv)
uv sync
# 配置
cp .env.example .env
# 编辑 .env,填入 YESCAPTCHA_KEY 和邮箱配置
mkdir -p keys
# 开始注册
uv run python grok.py注册单个账号
uv run python grok.py --email-provider luckmail --threads 1批量注册(8 线程)
uv run python grok.py --email-provider luckmail --threads 8SSO 转 CPA Token
uv run python sso_to_cpa.py --all启动自动补货守护
# 每 600 秒检查一次,账号池低于 2 个时自动注册补位
uv run python auto_replenish.py --daemon 600 --min 2配置说明
| 变量 | 必填 | 说明 |
|---|---|---|
YESCAPTCHA_KEY | 是 | YesCaptcha API Key,用于解 Turnstile 验证码 |
EMAIL_PROVIDER | 否 | 邮箱提供商:gptmail / luckmail / mailnest |
LUCKMAIL_API_KEY | luckmail 时必填 | LuckMail API Key |
THREADS | 否 | 并发线程数,默认 1 |
GROK2API_BASE | 否 | API 网关地址,默认 http://127.0.0.1:8000 |
GROK_PROXY | 否 | 代理地址,默认 http://127.0.0.1:7897 |
输出文件
keys/grok.txt— SSO token 列表keys/accounts.txt—email:password:sso格式
邮箱方案对比
| 提供商 | 模式 | 费用 | 推荐场景 |
|---|---|---|---|
| GPTMail | 免费 API | 免费 | 测试、少量注册 |
| LuckMail | 购买邮箱 + token 轮询 | 付费 | 批量注册,成功率较高 |
| MailNest | 付费 API | 付费 | 备选 |
依赖服务
- YesCaptcha — Turnstile 验证码识别,注册必用
- grok2api — API 网关,用于接入注册的账号
致谢
基于以下项目改进:
- AaronL725/grok-register
- kaibushush/grok-register
License
MIT,随便用。
以上。