当前位置:首页 > 技术分享

WorkBuddy「Buddy 加油站」无需服务器 云端每日自动签到

admin11小时前技术分享23

WorkBuddy「Buddy 加油站」无需服务器  云端每日自动签到 


终极方案:金山文档脚本

一。获取refresh_token(令牌)

  1. 获取 workbuddy-desktop.info:

    我的路径在C:\Users\Administrator\AppData\Local\CodeBuddyExtension\Data\Public\auth\workbuddy-desktop.info

  2. Windows:%LOCALAPPDATA%\CodeBuddyExtension\Data\Public\auth\workbuddy-desktop.info

  3. macOS:~/Library/Application Support/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info

  4. Linux:~/.config/CodeBuddyExtension/Data/Public/auth/workbuddy-desktop.info

这个文件中有一项是refreshToken 有了令牌,就可以无需登录WorkBuddy的账号,让脚本通过接口去实现自动签到领积分。而这个脚本,是可以使用沙箱运行起来的。就算沙箱不是一直在线,只要每天通过云端定时任务去成功唤醒它

二。部署自动签到脚本

第一步。使用电脑浏览器打开金山文档的官网kdocs.cn,不需要去点击立即下载,下载客户端使用。我们只需要点免费使用即可,免费使用就是在线使用金山文档网页版的意思:

1.png

第二步. 创建表格

2.png

第三步.将 refreshToken 放到 B1中

3.png

第四步。部署脚本代码

4.png

打开AirScript脚本编辑器后,左侧列表中有一个+号按钮。点击一下就能创建一个新的文档共享脚本文件,默认创建的是未命名的脚本,我们直接输入WorkBuddy自动签到,作为该脚本的名称

把下面的脚本代码全部复制一下,粘贴到右侧的编辑框里面即可:点击保存

/**
 * 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这个服务:

5.png

最后,你再看看那个长得像播放器按钮的三角形图标,这个是调试按钮。我们已经把脚本代码部署上去了,那究竟能不能成功跑通,就可以点击一下调试按钮调试一

5-2.png

第六步。添加计划任务

6-1.png6-2.png


三。令牌失效与运行监控的四件事

到这里,你就相当于成功部署了一个7×24小时x365天的云端在线机器人。以后不需要你开机开电脑,不需要你打开WorkBuddy的电脑客户端,哪怕你忘了,你不想,你懒得,不管你咋样都行。

它都能到点自动帮你签到领取每天的100个WorkBuddy免费积分,它都能帮你不错过任何一个鸡蛋的领取。除了以下情况:

1、refresh_token(令牌)的有效期一般是60天,每次脚本自动去签到的时候,都会刷新一下。正常情况下是不会失效,因为每次签到刷新后,都是最新的refresh_token(令牌)。

只有两种情况下会失效,一是你在WorkBuddy的电脑客户端上,退出了自己的账号。退出后,refresh_token(令牌)就得重新去获取,按照上面方法获取即可。

二是如果脚本自动签到没有完成过一次,而你又多次地手动通过提示词去获取最新的令牌,那么之前的令牌就会失效,这个逻辑得搞清楚。

如果令牌失效了,每次你手动通过提示词去获取最新令牌后,都要记得去替换掉金山文档表格的B1格子里面的旧令牌,养成一个习惯。

2、如果WorkBuddy官方下架了Buddy加油站每天签到领积分的活动,这个不好说的,哪天会下架也说不定,那本文的方法自动失效,切勿纠结。

3、如何在没有打开WorkBuddy电脑客户端的情况下,判断自动签到脚本在正常运行中?关键点就是看每天有没有获取到平台的奖励积分。

扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/769.html

分享给朋友:

“WorkBuddy「Buddy 加油站」无需服务器 云端每日自动签到 ” 的相关文章

百度云,天翼云盘解析网页地址 收集分享

百度云解析http://p.106666.xyz/https://pan.kdbaidu.com/https://pan.kdpd.me/https://yun.kdbaidu.com/http://blog.xxatf.top/https…

关于微信第三方平台(全网发布检测)检测流程以及踩到的坑

关于微信第三方平台(全网发布检测)检测流程以及踩到的坑

能点到全网发布这一步,说明你已经弄好了获取component_verify_ticket,component_access_token等这些参数,通常这个时候点击全网发布只会有这两个失败。如果其他失败的那就要好好检查一下你的代码了,或者查看…

[Windows] Adobe Flash Player 34.0.0.92及可用版修改方法

[Windows] Adobe Flash Player 34.0.0.92及可用版修改方法

随着 2021 年的到来,Adobe Flash Player 也迎来了告别,Adobe 在 2020 年 12 月 31 日后将不再支持 Flash Player。其实早在 2017 年,Adobe 公司就已宣布,计划在 2020 年底逐…

[教程] WTG备份新方法——FFU镜像格式

[教程] WTG备份新方法——FFU镜像格式

FFU(Full Flash Update) 格式是一种基于扇区的磁盘镜像文件格式,默认使用快速哈夫曼压缩(Xpress-Huffman)算法压缩,在捕获和部署时会生成哈希表进行校验,并可以使用DISM修改捕获的镜像。FFU格式很适合WTG…

2021可用的百度网盘高速下载方法分享

2021可用的百度网盘高速下载方法分享

最新可用方法https://blog.bitefu.net/post/163.html方法很简单就是利用网盘直链下载助手【网盘直链下载助手】是一款免费开源获取网盘文件真实下载地址的油猴脚本,基于PCSAPI,支持Windows,Mac,Li…

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

微软Windows 10升级密钥(例如家庭版升级为企业版) 不能用于激活系统

下面的密钥,是微软官方提供的,仅能用于Windows10系统版本的升级,比如从家庭版升级为专业版、专业版升级为企业版等。升级密钥不能用于激活系统,激活需要KMS或者数字权利,由于涉及到版权问题,在此不宜分享,请大家自行查找激活相关的内容。准…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。