WorkBuddy 每日自动签到教程
发布于 2026/10/13 08:51:13目标:每天自动完成 WorkBuddy 签到,领取每日积分,不用手动打开客户端。 适用:腾讯 WorkBuddy 账号,有一台 Windows 电脑(装有 WorkBuddy 桌面客户端并已登录)。 原理:直接调用官方签到接口,无需挂客户端。
一、原理简介
WorkBuddy 提供了一个签到接口,签到就是调一次它:
- 签到接口:
POST https://www.codebuddy.cn/v2/billing/meter/daily-checkin,请求体{} - 成功标志:返回
code == 0;code == 10001表示今天已签过(也算成功) - 身份认证:请求头带
Authorization: Bearer <access_token>,外加设备指纹头(X-Machine-ID/X-Session-ID等,由 uid 稳定派生,同一账号不漂移) - token 续期:access_token 过期后调
POST https://copilot.tencent.com/v2/plugin/auth/token/refresh(请求头带X-Refresh-Token),换新的 access_token + refresh_token
接口细节逆向自开源项目 workbuddy2api-hub(MIT 协议)。
二、准备工作
- Windows 电脑一台,装有 Python 3.8+(官网下载安装,安装时勾选"Add Python to PATH")
- WorkBuddy 桌面客户端(国内版)正在运行且已登录
- 一台长期在线的机器跑定时任务(本教程用 Muse 的云主机 + cron,也可以用自己的服务器/NAS)
三、步骤一:提取登录凭证(在 Windows 上)
WorkBuddy 客户端把登录凭证存在本地文件:
%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\workbuddy-desktop.info
文件里是 JSON,包含 auth.accessToken、auth.refreshToken、account.uid。2026-09-24 之后的客户端版本会对凭证加密,需要从客户端进程内存回收密钥解密。
一键提取脚本(已备好,见附件 workbuddy-token-提取工具.zip,含 extract-workbuddy-token.py + 解密模块 wb_atrest.py,无需安装第三方库):
-
解压到 Windows 电脑任意目录
-
确认 WorkBuddy 客户端正在运行且已登录
-
运行:
python extract-workbuddy-token.py- 若提示密钥回收失败:确认客户端在运行,或右键"以管理员身份运行"
-
成功后同目录生成
tokens.json,内容格式:{ "uid": "…", "access_token": "…", "refresh_token": "…" }
⚠️
tokens.json是你的登录凭证,别发到公开渠道,传给执行签到的人即可。
四、步骤二:部署签到脚本
把 tokens.json 存到执行机器的 ~/workspace/workbuddy-checkin/state/tokens.json,权限设为 600:
mkdir -p ~/workspace/workbuddy-checkin/state
cp tokens.json ~/workspace/workbuddy-checkin/state/tokens.json
chmod 600 ~/workspace/workbuddy-checkin/state/tokens.json
签到脚本 checkin.py 逻辑:
- 读
state/tokens.json POST签到接口,带完整请求头(含 Bearer token + 设备指纹)- 返回 401(token 过期)→ 调续期接口换新 token → 回写
tokens.json→ 重试签到 - 结果追加到
state/checkin.log - 续期也失败 → 退出码 1,提示用户重新提取凭证(比如改了密码/退出登录)
手动验证一次:
python3 ~/workspace/workbuddy-checkin/checkin.py
# 期望输出:OK 签到成功… 或 OK 今日已签到(无需重复)
若直连超时:云主机出境可能需要走代理,确认
https_proxy等环境变量生效后再试(curl 先验证通不通)。
五、步骤三:设置每天自动执行
用 cron 每天 09:05(北京时间)跑一次:
| 项 | 值 |
|---|---|
| 任务 id | workbuddy-daily-checkin |
| 时间 | 每天 09:05,Asia/Shanghai |
| 内容 | 执行 python3 ~/workspace/workbuddy-checkin/checkin.py,看 state/checkin.log 尾行确认结果,一句话汇报 |
汇报规则:成功/已签到 → 一句话;失败 → 说明原因和需要用户做的事(不要编造成功)。
六、验证
- 手动跑一次脚本,确认
OK - 手动触发一次定时任务,确认 worker 环境(代理、权限)没问题
- 第二天看
state/checkin.log是否有新的成功记录
七、常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
| 提取脚本找不到凭证文件 | 客户端没装 / 没登录过 / 装的是国际版 | 登录国内版客户端后重试 |
| 密钥回收失败 | 客户端没运行 / 权限不足 | 确认客户端运行中,管理员身份运行脚本 |
| 签到返回 401 后续期失败 | refresh_token 失效(改密码/退出登录) | 重新跑步骤一提取新凭证 |
| 连接超时 | 出境需走代理 | 检查 https_proxy 环境变量 |
code == 10001 | 今天已经签过 | 正常,算成功,不用管 |
八、注意事项
- 凭证文件
state/tokens.json保持 600 权限,不要进 git、不要外传 - refresh_token 长期有效期间全自动;一旦失效必须人工重新提取
- 这是调用你自己账号的官方接口领每日奖励,和手动点签到等价;不要把脚本/凭证给别人用
- WorkBuddy 官方改接口时脚本可能失效,届时按"一、原理简介"里的接口对照排查