掘金自动签到 Juejin Auto Check-in
我每天都会刷掘金,签到领矿石,但老忘点。后来写成自动任务,代码在 chcekin。
用的方案
以前那套开源签到,大多是 Cookie + Node 直接调接口。读数据没问题,签到 POST 经常被拦——返回空 body,Actions 看着成功,矿石不涨。
这版改成:
- GET(今日状态、矿石、天数)仍用 Node
fetch带 Cookie - POST(签到、抽奖)HTTP 空响应时,Playwright 开无头浏览器,在页面里发同一个请求,让 secsdk 自己补签名
async function apiPost(cookie, apiPath, body = {}) {
const httpResp = await apiPostHttp(cookie, apiPath, body)
if (!httpResp.empty) return httpResp
return browserApiPost(cookie, apiPath, body)
}
本地用 Chrome,CI 用 Chromium。需要的话可以 FORCE_BROWSER=true 让写接口全程走浏览器。
定时跑
GitHub Actions 每天北京时间 8:00、8:30 各跑一次。Secrets 配 JUEJIN_COOKIE,可选钉钉 Webhook,跑完推送矿石、连续天数、抽奖结果。今天已签(err_no=15001)当成功退出。
Cookie 大概三十天要换一条;快过期时钉钉摘要里会提醒。仓库还有 keepalive workflow,避免公开 repo 太久不 commit 导致 schedule 被停。
本地试
cp .env.example .env # JUEJIN_COOKIE,可选钉钉
npm install && npm start
Cookie 在 Chrome 登录掘金后,从 DevTools 复制 juejin.cn 下的 Cookie 拼成一行即可。