ARTICLE · 1064873
懒人专属:不开电脑,把WorkBuddy每日签到挂在金山文档,365 天自动领
在 AI 圈,这叫"领鸡蛋"——每代人都有自己要领的鸡蛋,我们这代人领的是 token。出差、放假、电脑坏了……总有不开电脑的日子,鸡蛋不领就白白浪费。
今天这篇,教你不开电脑、不开 WorkBuddy、甚至不开云端沙箱,把签到挂成 7×24 小时机器人。
01 · 先泼冷水:那些"签到 Skill"基本是脱裤子放屁
新版本 WorkBuddy 早就不弹签到按钮了——只要你每天打开一次,默认就自动签到了。
那市面上那些"自动签到 Skill"有用吗?看清底层逻辑就发现:
它们创建的定时任务,只在你的电脑客户端开着时才跑。你今天没开电脑?任务直接过期。 有人说"那我放云端跑"。错。WorkBuddy 云端沙箱是台虚拟机,没任务就休眠,到点经常唤不醒(实测体验很差,估计是 bug)。
结论:你都每天开电脑了,本机默认就签到;你不开电脑,Skill 也跑不了。里外里,纯属多余。
02 · 正解:把脚本挂到金山文档
思路就一句话:拿到你账号的 refresh_token,让脚本直接调接口签到,跟你开不开电脑没关系。
问题是怎么"永远在线地跑"?
云服务器?门槛高,还得会管。 GitHub Actions?要账号要配置。 金山文档 AirScript:微信扫码就能用,自带云端 JS 沙箱 + 定时任务,小白 3 分钟搞定,7×24 跑脚本。
03 · 四步实操(照抄即可)
第一步 · 取 refresh_token
打开%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\
workbuddy-desktop.info文件,搜refreshToken字段,复制后边的“eyJ......”大概700个字符。
如果以上方法无法判别,请用以下方案,workbuddy客户端 → 新建任务→ 发这段提示词:
帮我提取 WorkBuddy 的 refreshToken,按以下步骤:1. 读取客户端登录态文件:macOS: ~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.infoWindows: %LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\workbuddy-desktop.info2. 只提取其中 auth.refreshToken 字段的值3. 输出要求(重要):- 完整输出,禁止截断、省略号、折行,它是一个约 700 字符的长字符串- 只输出 token 本身,不要加解释、引号或代码块装饰4. 如果文件不存在,在我电脑的用户数据目录里搜索文件名含workbuddy 或内容含 refreshToken 的 .info/.json 文件再试5. 如果你说无权限读取,直接告诉我文件的实际位置,让我手动打开复制
WorkBuddy 会回你一长串 eyJ... 的令牌,全选复制备用。

第二步 · 金山文档建表存令牌
浏览器打开 kdocs.cn → 点「免费使用」→ 微信扫码登录:
左上角「新建」→ office 文档 → 表格 → 选「空白表格」:
在B1单元格粘贴刚才的 refresh_token(把列拉宽一点,方便看):
B2 留给脚本写结果,不用管。




第三步 · 部署脚本代码
顶部「效率」→「高级开发」→「AirScript 脚本编辑器」→ 左侧「+」新建,命名为 WorkBuddy自动签到:


把下面这段代码整段粘贴进右侧编辑框:
/*** WorkBuddy「Buddy 加油站」每日自动签到 —— 金山文档 AirScript 版* B1 = refresh_token(每次运行自动续期并回写,长期有效)* B2 = 最近一次执行结果* 脚本幂等:当天只真签一次,重复跑自动跳过。*/var API = ”https://copilot.tencent.com”;function postJSON(url, headers) {var resp = HTTP.post(url, ”{}”, { headers: headers, timeout: 15000 });return resp.json();}function main() {var rt = Application.Range(”B1”).Text;if (!rt) {Application.Range(”B2”).Value2 = ”失败:B1 没有 refresh_token”;return;}var r;try {r = postJSON(API + ”/v2/plugin/auth/token/refresh”, {”Content-Type”: ”application/json”,”X-Refresh-Token”: rt,”X-Auth-Refresh-Source”: ”plugin”,”X-Domain”: ”copilot.tencent.com”});} catch (e) {Application.Range(”B2”).Value2 = ”刷新请求异常:” + e.message;return;}if (r.code !== 0 || !r.data) {Application.Range(”B2”).Value2 = ”刷新失败 code=” + r.code + ” ” + r.msg + ”(需重新取令牌填入 B1)”;return;}var at = r.data.accessToken;var newRt = r.data.refreshToken;Application.Range(”B1”).Value2 = newRt; // 自续期,旧令牌兜底var msg;try {var c = postJSON(API + ”/v2/billing/meter/daily-checkin”, {”Content-Type”: ”application/json”,”Authorization”: ”Bearer ” + at});if (c.code === 0) {msg = ”签到成功 +” + ((c.data && c.data.credit) || 100) + ” 积分”;} else if (c.code === 10001) {msg = ”今日已签(幂等跳过)”;} else {msg = ”签到异常 code=” + c.code + ” ” + c.msg;}} catch (e) {msg = ”签到请求异常:” + e.message;}var extra = ””;try {var s = postJSON(API + ”/v2/billing/meter/checkin-activity-status”, {”Content-Type”: ”application/json”,”Authorization”: ”Bearer ” + at});if (s.code === 0 && s.data) {extra = ”|连签” + s.data.streak_days + ”天,本期累计” + s.data.total_credits + ”分”;}} catch (e2) { /* 状态查询失败不影响主流程 */ }var now = new Date();var line = (now.getMonth() + 1) + ”月” + now.getDate() + ”日 ” +(”0” + now.getHours()).slice(-2) + ”:” + (”0” + now.getMinutes()).slice(-2) +” ” + msg + extra;Application.Range(”B2”).Value2 = line;}main();
点「保存」(磁盘图标),再点右侧方形「服务」按钮 → 添加「网络API」:

点三角形「调试」运行。首次会弹"授权网络访问",点允许;日志显示结果即成功:

💡 踩坑:B2 报"令牌失效"怎么办?多半是你之前手动取过多次令牌,旧的就废了。把 B2 的报错发给 WorkBuddy 重新取一次新令牌,替换掉 B1 再调试一次即可.
第四步 · 建定时任务
回到表格「效率」→「高级开发」→「定时任务」→ 创建任务,设每天 08:00(周末也别跳过,鸡蛋照领):


02 · 注意事项:
1. 令牌 60 天有效,脚本每次签到自动续期;失效只有两种:你在客户端退了账号,或你反复手动取令牌。失效后记得替换 B1 里的旧令牌。
2. 官方哪天下架 Buddy 加油站活动,方法自动失效,别纠结。
3. 怎么确认脚本在跑?打开 workbuddy.cn 登录 → 右上角头像进个人中心 → 套餐与用量 → 平台奖励积分 → 查看全部,看最近几天的官方发放记录(签到送的积分有效期 30 天,按到期时间倒推哪天领的):
4. 多账号理论可行:多建几个表格 + 多配几次脚本即可;同机切号取令牌可能冲突,多机无压力。
照着四步走,你就拥有了一个永不掉线的签到机器人。
收藏这篇,今晚就配好。有问题,评论区见。