仅用于自动化流程研究、测试环境验证和个人学习。请遵守目标网站服务条款、当地法律法规与第三方服务限制。
核心流程
打开注册页 → 创建临时邮箱 → 收验证码 → 填资料 / 过人机验证
→ 拿到 SSO cookie → device-flow 换 OAuth token
→ 本地写入 cpa_auth_dir 和/或 POST 远程 CPA Management API
→ CPA 热加载,立即可用
功能
- 注册成功后自动入库 CPA(本地目录 / 远程 Management API,可同时开)
- GUI + CLI 两种运行方式(CLI 仍会打开浏览器完成注册页)
- Chromium/Chrome 自动处理 Turnstile
- DuckMail / YYDS / Cloudflare 临时邮箱
- 注册后可选开启 NSFW
- 页面卡住重试、验证码失败换邮箱、浏览器重启与内存清理
- CLI:一次
Ctrl+C安全停止,清理阶段不刷 traceback;再按一次强制中断
环境要求
- Python 3.9+
- Google Chrome 或 Chromium
- 可用的 CLIProxyAPI
- 能访问注册页、临时邮箱 API、
auth.x.ai的网络(device-flow 换 token 需要)
安装
git clone https://github.com/Git-creat7/grokRegister-cpa.git
cd grokRegister-cpa
pip install -r requirements.txt
cp config.example.json config.json
编辑 config.json 后运行。
配置
| 配置项 | 说明 |
|---|---|
cpa_auto_add |
是否开启 CPA 自动入库 |
cpa_auth_dir |
本地 CPA auth 目录;写入 xai-<email>.json,可留空 |
cpa_remote_url |
远程 CPA 地址,如 http://你的CPA地址:8317 |
cpa_management_key |
远程 CPA 管理密钥(remote-management.secret-key 明文) |
email_provider |
duckmail / yyds / cloudflare |
register_count |
目标注册数量 |
proxy |
代理;device-flow 换 token 也走此代理 |
enable_nsfw |
注册后是否尝试开启 NSFW |
cloudflare_api_base |
Cloudflare 临时邮箱 API 根地址 |
cloudflare_api_key |
默认匿名模式留空;admin 模式填 ADMIN_PASSWORD |
cloudflare_auth_mode |
none / bearer / x-api-key / x-admin-auth / query-key |
cloudflare_custom_auth |
Worker 全局密码(PASSWORDS),注入 x-custom-auth |
cloudflare_path_* |
domains / accounts / token / messages 路径 |
defaultDomains |
Cloudflare 默认收信域名 |
Cloudflare 邮箱(默认匿名)
{
"email_provider": "cloudflare",
"cloudflare_api_base": "https://你的-worker-api-域名",
"cloudflare_api_key": "",
"cloudflare_auth_mode": "none",
"cloudflare_path_domains": "/api/domains",
"cloudflare_path_accounts": "/api/new_address",
"cloudflare_path_token": "/api/token",
"cloudflare_path_messages": "/api/mails",
"defaultDomains": "你的收信域名.com"
}
匿名创建失败(例如 Turnstile)时可改 admin 创建:
{
"cloudflare_api_key": "你的 ADMIN_PASSWORD",
"cloudflare_auth_mode": "x-admin-auth",
"cloudflare_path_accounts": "/admin/new_address"
}
调试创建接口:
python cf_mail_debug.py \
--api-base "https://你的-worker-api-域名" \
--auth-mode x-admin-auth \
--api-key "你的 ADMIN_PASSWORD" \
--create-path /admin/new_address \
--domain "你的收信域名.com"
Worker 若配置了全局 PASSWORDS,再加:
{ "cloudflare_custom_auth": "你的全局访问密码" }
CPA 自动入库
SSO 不是 CPA 凭据。程序会:
- 用 SSO 走 device-flow 向
auth.x.ai换access_token/refresh_token - 组装
type=xai扁平 auth(cli-chat-proxy.grok.com) - 本地:
cpa_auth_dir→xai-<email>.json(CPA 热加载) - 远程:
POST {cpa_remote_url}/v0/management/auth-files?name=...(需管理密钥)
本地目录
{
"cpa_auto_add": true,
"cpa_auth_dir": "你的CPA auth目录"
}
cpa_auth_dir 填 CPA 实际监听的 auth 目录路径即可。
远程 Management API
{
"cpa_auto_add": true,
"cpa_auth_dir": "",
"cpa_remote_url": "http://你的CPA地址:8317",
"cpa_management_key": "你的管理密钥明文"
}
要求 CPA:remote-management.allow-remote 按访问方式配置;密钥为配置里的明文(启动后配置文件可能被写成 bcrypt,上传仍用明文)。
本地与远程可同时开启。日志前缀:[CPA]。
独立转换
已有 SSO 时可脱离注册流程:
# 写本地目录
python sso_to_auth_json.py --sso sso_list.txt --cpa-auth-dir /path/to/auths
# 上传远程 CPA
python sso_to_auth_json.py --sso sso_list.txt \
--cpa-remote-url http://你的CPA地址:8317 \
--cpa-management-key '你的管理密钥'
# 单个 cookie + 代理
python sso_to_auth_json.py --sso-cookie 'eyJ...' \
--cpa-auth-dir ./auths \
--proxy http://127.0.0.1:7890
sso_list.txt:一行一个 SSO,或 邮箱----密码----sso。
运行
CLI
python grok_register_ttk.py cli
提示后输入 start。
Ctrl+C 一次:当前账号收尾后停止;清理浏览器时不会因二次中断刷 traceback。再按一次强制退出。
GUI
python grok_register_ttk.py
可在界面里改 CPA 开关、auth 目录、远程地址与管理密钥。
输出文件
| 文件 | 内容 |
|---|---|
accounts_*.txt |
邮箱、密码、SSO |
mail_credentials.txt |
临时邮箱凭证 |
均含敏感信息,已在 .gitignore 中忽略。config.json 也不提交,请用 config.example.json 复制。
稳定性
- 每账号结束后重启浏览器
- 每成功 5 个账号做一次内存清理
- 邮箱提交后确认页面前进,避免空等验证码
- 未收到验证码时换邮箱重试
- 最终页卡住时重试当前账号
常见问题
CPA 没出现新账号
检查 cpa_auto_add、cpa_auth_dir 或 cpa_remote_url + cpa_management_key;看 [CPA] 日志是否换 token / 上传成功;本机/服务器能否访问 auth.x.ai。
远程上传失败
确认 CPA 管理 API 已启用、密钥明文正确;远程访问需 allow-remote: true。可用:
curl -H "Authorization: Bearer <管理密钥>" \
http://你的CPA地址:8317/v0/management/auth-files
CLI 为什么还开浏览器
CLI 只是不启动 Tk;注册页、Turnstile、SSO 仍依赖真实浏览器。
NSFW 失败
常见为 Cloudflare 拦截。账号仍会保存并入库 CPA。
国内服务器调模型超时
入库成功只说明凭证到了 CPA;调用上游 cli-chat-proxy.grok.com 还需服务器出网可达(或配置 CPA proxy-url)。
目录结构
.
├── grok_register_ttk.py # 主程序(GUI / CLI + CPA 入库)
├── sso_to_auth_json.py # SSO → CPA 转换(可独立运行)
├── cf_mail_debug.py # Cloudflare 邮箱调试
├── config.example.json
├── requirements.txt
├── tests/
└── assets/banner.png
License
Acknowledgments
Thanks to linux.do and CLIProxyAPI.
