结合各种提取 appId 脚本,不过似乎走了不少弯路。
appId: 然后把这行注释掉即可,以后就不用被 appId 困扰。# 联通 Token 提取工具 (Python版)
这是一个基于 Python 的自动化脚本,用于模拟中国联通 APP 登录流程,并提取 API 接口所需的 `token_online`。
## ✨ 功能特点
* **多账号支持**:支持通过环境变量一次性配置多个账号。
* **智能状态识别**:
* ✅ 自动识别登录成功并提取 Token。
* ❌ 识别密码错误 (Code: 2)。
* ⚠️ 识别未设置服务密码 (Code: 11)。
* 🛡️ 识别风控验证码拦截 (Code: ECS99999)。
* **安全防伪装**:完全模拟真实 APP 的请求头和设备指纹信息。
---
## 🛠️ 环境准备
在运行脚本之前,请确保你的环境满足以下要求:
1. **Python 3.6+**:建议使用最新版。
2. **Node.js**:**必须安装**。脚本依赖 `PyExecJS` 调用 Node.js 运行加密函数。
* 验证方法:在终端输入 `node -v`,如果显示版本号则说明已安装。
3. **第三方库**:需安装 `requests` 和 `PyExecJS`。
### 安装依赖
```bash
pip install requests PyExecJS
为了安全起见,账号密码不直接写入代码,而是通过 环境变量 UNICOM_ACCOUNTS 进行配置。
手机号1#服务密码1@手机号2#服务密码2
@ 分割不同账号。# 分割手机号和密码。set UNICOM_ACCOUNTS=13800000001#123456@13800000002#654321
python unicom_login.py
$env:UNICOM_ACCOUNTS="13800000001#123456@13800000002#654321"
python unicom_login.py
export UNICOM_ACCOUNTS="13800000001#123456@13800000002#654321"
python unicom_login.py
在面板的 “环境变量” 页面添加:
UNICOM_ACCOUNTS13800000001#123456@13800000002#654321确保代码保存为 unicom_login.py (或其他你喜欢的名字),然后在终端运行:
python unicom_login.py
运行结果示例:
🚀 启动联通 Token 提取脚本 (v4)...
📋 共读取到 2 个账号
----------------------------------------
处理第 1 个账号...
🔄 [账号: 138****0001] 正在尝试登录...
✅ [账号: 138****0001] 登录成功!
🎯 Token:
25f23579-xxxx-xxxx-xxxx-xxxxxxxxxxxx
----------------------------------------
处理第 2 个账号...
🔄 [账号: 138****0002] 正在尝试登录...
🛡️ [账号: 138****0002] 触发安全风控 (ECS99999)
💡 建议:检测到验证码弹窗。请手动打开联通APP登录一次以解除风控...
脚本会自动处理并翻译以下联通 API 状态码:
| 状态码 (Code) | 含义 | 解决方案 |
|---|---|---|
| 0 / 0000 | 登录成功 | 🎉 脚本会自动输出 Token。 |
| 2 | 密码错误 | 请检查你的服务密码是否正确。 |
| 11 | 无服务密码 | 账号未设置登录密码,请去联通APP“设置-安全中心”设置服务密码。 |
| ECS99999 | 触发风控 | 也就是“验证码弹窗”。<br>解决办法:关闭WiFi,使用4G/5G流量手动打开联通APP登录一次,即可解除。 |
| 其他 | 未知错误 | 脚本会直接打印后端返回的 desc 错误描述。 |
deviceCode 即可解决。新增以下任务:
联通阅读低保无了,目前也就挂着签到,了胜于无。
抽奖活动将于 2025年9月30日 结束,浇花倒是还有蛮长时间。

参与人数 1