ARTICLE · 1041670
WorkBuddy每天自动签到领积分(电脑无需开机登陆·小白完整版)

编者案:个人从网上查找学习实践,很多方式可以实现每天自动签到领积分,对比运用WorkBuddy签到助手、设置每天自动化以及云服务器,通过各种方式实践对比,只有云服务器真正能够实现不用打开电脑、全程自动化实现每天自动签到领积分!本人已亲自验证有效!!!
一、方案核心优势
为什么这套方案最适合你?抛弃了GitHub Actions海外IP风控、抛弃了本地脚本依赖电脑、抛弃了付费服务器,保留了原版PHP脚本最稳的先查后签、状态判断、错误分级核心能力,是目前 免费、稳定、低风控、零运维 的最优解。
- 全程不用电脑开机
:云端自动跑,关机休眠不影响 - 完全免费
:腾讯云SCF免费额度每日足够签到百次,个人用永久免费 - 最强稳签逻辑
:原版工业级「先查后签幂等机制」,绝不重复签到、极低风控 - 小白零难度
:复制粘贴即可,无需代码基础、无需服务器、无需挂机 - 官方真实接口
:使用你抓取到的最新官方接口,无失效占位地址
风险提示:自动化签到属于技术学习用途,存在极小概率风控、积分回收风险,日常稳定可用,后果自用自负。
二、前置准备(仅一次,5分钟搞定)
1. 注册/登录腾讯云
打开官网:https://cloud.tencent.com/,微信扫码登录即可,无需实名认证付费。
2. 获取你的 WorkBuddy Token(关键)
打开电脑端 WorkBuddy/CodeBuddy,抓包或查看本地缓存,获取你的 Bearer Token(JWT三段式字符串)。
步骤 1:打开电脑缓存目录
按下键盘 Win + R((就是按键盘左下角带这个

的键和R键)),粘贴("%localappdata%\CodeBuddyExtension\Data\Public\auth")路径回车:

步骤 2:找到密钥文件
文件夹里有文件workbuddy-desktop.info:

步骤 3:获取 Token
用记事本打开该文件 找到字段: "accessToken":"这里就是你的Token"

复制 引号内一整段(三段式、带两个小数点 JWT 字符串)
✅ 格式特征:
以 eyJhbGci 开头,中间两个 .,一共三段,就是正确可用的 Bearer Token
步骤 4:粘贴到腾讯云 SCF
回到腾讯云函数 → 环境变量 WB_TOKEN,粘贴保存即可。
三、完整手把手部署步骤(小白照做即可)
步骤1:进入云函数SCF控制台
直接打开地址:https://console.cloud.tencent.com/scf
点击「函数服务」→「新建函数」

步骤2:创建空白函数(严格按以下选择)
创建方式:空白函数 函数名称: workbuddy_sign(随便填)地域:选 广州(国内最快、风控最低) 运行环境:PHP 7.2 启用外网访问:无需开启
点击「完成」创建函数。

步骤3:粘贴我给你的【SCF专属改造后完整代码】

删除控制台默认全部代码,全文复制下方代码覆盖(已适配SCF、无本地文件、无锁、兼容云端环境、保留原版所有稳签逻辑)
<?php/** * WorkBuddy 腾讯云SCF专属签到脚本 * 适配云端、无需本地文件、无需电脑开机、幂等先查后签 * 退出码:0成功/已签 2Token失效 3服务异常 4配置错误 */// ========== 官方真实接口(你提供的最新有效接口) ==========define('STATUS_URL', 'https://www.codebuddy.cn/v2/billing/meter/checkin-activity-status');define('CHECKIN_URL', 'https://www.codebuddy.cn/v2/billing/meter/daily-checkin');define('TIMEOUT', 15);define('CONNECT_TIMEOUT', 5);date_default_timezone_set('Asia/Shanghai');// 统一日志输出(适配SCF控制台日志)function log_msg(string $msg): void{ echo '[' . date('Y-m-d H:i:s') . '] ' . $msg . PHP_EOL;}// 从SCF环境变量读取Token(安全、不明文存代码)function load_token(): string{ $token = trim(getenv('WB_TOKEN')); if (empty($token) || substr_count($token, '.') !== 2) { log_msg('❌ 未配置或Token格式错误,请检查环境变量 WB_TOKEN'); exit(4); } return $token;}// 通用POST请求function http_post(string $url, string $token): array{ $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => '{}', CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Authorization: Bearer ' . $token, 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Accept: application/json', ], CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => TIMEOUT, CURLOPT_CONNECTTIMEOUT => CONNECT_TIMEOUT, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, ]); $body = curl_exec($ch); $errmsg = curl_error($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); $json = json_decode($body, true); if (!is_array($json)) $json = []; return [$code, $json, $errmsg];}// 结果状态归一化(防误判)function classify(int $httpCode, array $resp): string{ if ($httpCode === 401 || $httpCode === 403) return 'auth'; $bizCode = $resp['code'] ?? ''; if ($bizCode === 0 || $bizCode === 'SUCCESS') return 'ok'; if ($bizCode === 10001) return 'already'; $msg = strtolower($resp['message'] ?? ''); if (str_contains($msg, '已签到') || str_contains($msg, 'already')) return 'already'; return 'failed';}// 格式化输出积分/连续天数信息function summarize(array $resp): string{ if (!isset($resp['data']) || !is_array($resp['data'])) return json_encode($resp, JSON_UNESCAPED_UNICODE); $data = $resp['data']; $txt = []; if (isset($data['today_checked_in'])) $txt[] = '今日已签到:' . ($data['today_checked_in'] ? '是' : '否'); if (isset($data['streak_days'])) $txt[] = '连续签到:' . $data['streak_days'] . '天'; if (isset($data['total_credits'])) $txt[] = '账户积分:' . $data['total_credits']; return implode(' | ', $txt);}// Token失效统一退出function exit_auth(){ log_msg('❌ Token已失效,请重新抓取更新!'); exit(2);}// ========== 云函数入口主函数 ==========function main_handler($event, $context){ log_msg('--- WorkBuddy 云端签到任务启动 ---'); $token = load_token(); log_msg('✅ Token加载成功'); // 1. 先查询今日是否已签到(幂等核心) [$sCode, $sResp, $sErr] = http_post(STATUS_URL, $token); log_msg("状态查询 HTTP {$sCode} | " . summarize($sResp)); $status = classify($sCode, $sResp); if ($status === 'auth') exit_auth(); if ($status === 'already') { log_msg('⏰ 今日已完成签到,无需重复执行'); log_msg('--- 任务结束 ---'); return '已签到'; } // 2. 未签到则执行签到 log_msg('🚀 开始执行今日签到'); [$cCode, $cResp, $cErr] = http_post(CHECKIN_URL, $token); log_msg("签到请求 HTTP {$cCode} | " . summarize($cResp)); $cStatus = classify($cCode, $cResp); if ($cStatus === 'auth') exit_auth(); if ($cStatus === 'ok') { log_msg('🎉 签到成功!积分已到账'); } elseif ($cStatus === 'already') { log_msg('⏰ 并发兜底:今日已签到'); } else { log_msg('❌ 签到失败,网络或服务异常'); exit(3); } log_msg('--- 今日签到任务完成 ---'); return '签到成功';}?>步骤4:配置私密Token(最重要!小白必看)
左侧菜单栏 →函数配置 → 点击“编辑”,下拉找到「环境变量」→ 添加变量


变量Key: WB_TOKEN变量Value:粘贴你自己抓到的WorkBuddy Token
点击保存!(Token存在这里绝对安全,不会泄露)
步骤5:测试代码是否可用(一键验证)
回到「代码编辑」页面 → 点击右上角 测试 → 直接点「提交测试」
成功日志会显示:✅ Token加载成功、今日已签到/签到成功
报错401 = Token过期/错误,重新抓取即可。
步骤6:配置定时自动签到(彻底解放双手)
左侧 → 触发器管理 → 新建触发器

触发方式:定时触发 触发器名称:随便填 sign_everyday触发周期:自定义CRON表达式 填写表达式: 0 30 9 * * *
含义:每天早上 9:30 自动签到(避开整点风控,最稳时间)
点击提交,全自动生效!
四、最终效果
✅ 电脑永久不用开机、不用挂机、不用联网 ✅ 每天9:30云端自动执行签到 ✅ 自带幂等机制,永不重复签到 ✅ 控制台可随时查看每日签到日志
五、常见小白问题排查
- 报错401/403
:Token过期,重新抓包替换环境变量里的WB_TOKEN即可 - 提示请求失败
:网络波动,第二天自动重试即可 - 不会抓Token
:告诉我,我发你一键抓包极简教程 - 想改签到时间
:我可以给你任意时间的CRON表达式