WorkBuddy 自动签到:不开机也能 7×24 白嫖 100 积分/天!

0 评论 541 浏览 0 收藏 16 分钟

新版客户端每天打开一次就默认签到,但一不开机就领不到,市面上多数签到 Skill 都卡在这。作者把 refresh_token 存进金山文档表格,用 AirScript 在云端跑,关机出差也能每天领到 100 积分,整套不到 10 分钟、不花钱。

我之前写过一篇 WorkBuddy 自动领积分的 Skill。发出去之后,评论区有个小伙伴留了这么一句:这自动签到领积分,还得把电脑打开啊?要是哪天没空开机,那不就领不成了么?

我跟他说,不至于……你把签到这事搬出你的电脑就行!WorkBuddy 的 Buddy 加油站,每天签到 100 积分,连签到第 7 天额外给 1000。一个月 30 天都开机的人,和只有 15 天开机的人,中间差着 1500 积分!用倍率低一点的模型,这 1500 分够你白用挺久。

但是,但是——那位小伙伴说的没错,而且这不是他一个人的问题。不管是市面上那些签到 Skill,还是我自己最早写的那篇,全都卡在同一个地方:得你先把电脑打开。而就在上个月,官方又给这个文件加了把锁,连「打开电脑读文件」这条老路也快堵死了。

我今天要讲的这条,是把签到彻底搬离你的电脑:你关机、出差、断网,它照样在云端把分领了。我整套部署下来大概 10 分钟,不花钱,也不用碰服务器。建议先收藏,出差前照着做一遍!

01 先搞懂:现在的签到机制,和那些「自动签到 Skill」的坑

先说一个前提。现在新版本的 WorkBuddy,不像以前每天第一次打开,左下角弹个「Buddy 加油站」提示、让你点签到按钮。现在是只要你每天打开一次客户端,就默认自动签到,直接显示「今日积分已领」,那个按钮都没了。

腾讯这波体验做得挺到位——你不想点,它就给你无感领了,也顺手避免了「打开了却忘记点」的尴尬。这细节我观察了好一阵才发现,一开始还以为是装了啥插件。

那问题来了。SkillHub 里一堆叫「WorkBuddy 积分助手」的 Skill,装了发句提示词,它给你建个本地定时任务,每天 9 点自动签到。听着很美,但有个死穴:这个定时任务,只有你的 WorkBuddy 客户端开着才能跑。你今天没开电脑、没开客户端,任务到点直接过期,签了个寂寞。

有人杠:那我用云端工作模式设定时任务,沙箱不是一直在吗?错。云端沙箱就像台虚拟机,没任务时过一阵就休眠了,定时任务到点去唤醒它,但实测经常唤醒失败,八成是 bug。所以「在云端设定时任务」这条路,目前走不通。

你都每天打开客户端了,默认就自动签到了,那定时任务跑不跑,有啥区别?对不开客户端的人,它更是一点用没有。

02 终极方案:金山文档脚本,不开机也能 7×24 签到

道理讲透就好办了。真正能「不开机自动签到」的,是让脚本带着你的令牌,在云端自己跑——这事我自己踩过坑才搞明白。WorkBuddy 账号有个 refresh_token(令牌),有了它,不用登录客户端,脚本调接口就能签到,省下的可是真金白银!

这个脚本,可以跑在金山文档的 AirScript 里。你不开电脑、不开客户端、不开云端沙箱,它照样每天准时签到,结果写回表格的格子里。云服务器、GitHub Actions 也能跑,但对小白门槛太高——金山文档免费、网页版、不用下载客户端,是最省事的路子。

真正的永久方案,是让脚本带着令牌在云端自己跑,而不是指望你哪天记得开电脑!

03 四步实操:拿令牌 → 存表格 → 贴脚本 → 定时间

下面是我实测的四步。每一步我都标了要截图的位置……你照着截自己的界面替换就行!

第一步 · 获取 refresh_token

先打开 WorkBuddy 电脑客户端(小程序 / APP 不行,必须客户端)。新建一个任务,模型选 GLM-5.3-Flash,对话框里发下面这段提示词,让它帮你把令牌读出来:

帮我提取 WorkBuddy 的 refreshToken,按以下步骤:
1. 读取客户端登录态文件:macOS 在 ~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info;Windows 在 %LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\workbuddy-desktop.info
2. 只提取 auth.refreshToken 字段的值
3. 完整输出,禁止截断,约 700 字符长字符串
4. 只输出 token 本身,不加解释、引号或代码块
5. 若文件不存在,搜索用户目录里含 workbuddy 或 refreshToken 的 .info / .json 文件
6. 若说无权限,告诉我文件实际位置,我手动复制

提交后它会回一长串像代码的字符串,那就是 refresh_token——我第一次见也懵,但全选复制就完事!别漏字符,这串约 700 字符,错了后面全白搭。

第二步 · 金山文档建表存令牌

浏览器打开 kdocs.cn,点「免费使用」(别下客户端,网页版就够)。

微信扫码登录后,左上角新建 → office 文档 → 表格 → 空白表格。

在 B1 格子粘贴刚才的 refresh_token(B1 = 第一行第二列)——这一步我踩过坑,漏一个字符后面全白搭!B2 格子留着,以后脚本签到结果会自动写这里。

第三步 · 部署脚本代码

表格顶部「效率」→「高级开发」→「AirScript 脚本编辑器」→ 新建脚本,命名「WorkBuddy 自动签到」。


右侧编辑框粘贴下面这段 JS,保存(磁盘图标)

/**

* WorkBuddy「Buddy 加油站」每日自动签到 —— 金山文档 AirScript 版

*

* 使用方法(一次性配置,约 3 分钟):

* 1. 打开 https://www.kdocs.cn 微信扫码登录,新建一个空白表格

* 2. 在 B1 单元格填入 refresh_token(获取方法见文末)

* 3. 点「效率」→「高级开发」→「AirScript 脚本编辑器」→ 创建脚本 → 文档共享脚本

* 4. 点「服务」→「添加服务」→ 添加「网络API」

* 5. 粘贴本代码,点「运行」试跑一次,B2 会显示结果

* 6. 回到表格,「效率」→「高级开发」→「定时任务」→ 创建任务:

* 选择本脚本,触发时间自选(如每天 09:00)。

* 脚本幂等:无论定时跑多少次,当天只会真正签一次,重复执行自动跳过。

*

* 表格约定:

* B1 = refresh_token(脚本每次运行自动续期并回写,长期有效)

* B2 = 最近一次执行结果

*

* 令牌获取:电脑登录 WorkBuddy 客户端后,打开文件

* ~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info

* (Windows 在 %APPDATA%\CodeBuddyExtension\Data\Public\auth\ 下,用记事本打开)

* 找到 “refreshToken”: “eyJ…” 那串,复制引号里的内容填到 B1。

* 注意:整个文档不要分享给任何人,令牌等于账号钥匙。

*

* 接口说明(逆向自 WorkBuddy 桌面端 v5.5.x,已实测):

* 刷新 POST /v2/plugin/auth/token/refresh 头: X-Refresh-Token / X-Domain / X-Auth-Refresh-Source: plugin

* 签到 POST /v2/billing/meter/daily-checkin 认证: Bearer;code=10001 表示今日已签(幂等)

*/

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;

}

// 1. 刷新令牌(refreshToken 可复用、双令牌都续期,链条可长期运行)

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;

// 回写新令牌,实现自续期(旧令牌仍可用作兜底,不怕写失败)

// 注意:AirScript 2.0 中写入单元格要用 Value2 属性或 Value(null, 内容),不能直接 .Value =

Application.Range(“B1”).Value2 = newRt;

// 2. 执行签到(幂等:今天已签会返回 10001)

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;

}

// 3. 查询连签状态,拼进结果

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」服务 → 点三角形调试按钮试跑一次,首次会问允许网络访问,点允许,这就通了!


这套脚本最妙的地方,是它每次签到都会自己续期令牌,等于给自己上了发条——我部署完就再没管过,隔三差五去重取那种破事,拜拜了。

第四步 · 创建定时任务

回到表格「效率」→「高级开发」→「定时任务」→ 创建任务,选刚才的脚本,设置每天 9:00,周末也别跳过(周末也能领)。确认,完事。从此你不开电脑、不开客户端,它每天准时帮你把 100 积分领了。

04 结语

自动签到这件事,说到底是把「必须靠我记着」变成「让系统自己记着」。

总而言之,你如果想一劳永逸,那就花点时间,按照文中的步骤搞一下,这样的话,不管什么情况,都可以每天领到100积分了。

本文由人人都是产品经理作者【晓庄AI创业笔记】,微信公众号:【晓庄AI创业笔记】,原创/授权 发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
海报
评论
评论请登录
  1. 目前还没评论,等你发挥!