你不用写代码 · 不用买服务器 · 不用每天登录
一次配置,每天 9:30 自动签到;失败自动重试
| 优势 | 说明 |
|---|---|
| ✅ 2026年验证可用 | 持续通过 Actions 日志和单元测试验证 |
| ✅ 结果可信 | 正确区分签到完成、重复签到和真实失败 |
| ✅ 新手友好 | 全程图解,不会也能照着做 |
| ✅ 作者持续维护 | 遇到问题提Issue,作者很乐意帮忙 |
每天签到能获得 +12 ~ +20 积分,累积可兑换会员时长!
┌─────────────────────────────────────────────────────────────┐
│ │
│ ① Fork 项目 ──→ 点一下右上角 Fork 按钮 │
│ │
│ ② 配置 Cookie ──→ 浏览器复制一下,贴到 GitHub Secrets │
│ │
│ ③ 启用 Actions ──→ 手动测试一次,之后每天自动运行 │
│ │
│ ✅ 完成!每天自动签到 + 微信通知 │
│ │
└─────────────────────────────────────────────────────────────┘
⭐ 觉得有用?点个 Star 支持一下!
默认只使用仓库内置的 GitHub Actions 定时任务,无需创建外部 cron。
本项目每月自动提交一次保活时间戳,避免公开仓库因 60 天无活动而停用计划任务。
cron-job.org仅作为可选备用方案。内置 schedule 与外部 cron 二选一,同时启用会重复签到和重复通知。已经 Fork 很久的用户需要先点击 Sync fork → Update branch,再重新启用 Actions。
⚠️ 重要:如果你使用其他签到脚本失败,显示 "please checkin via https://glados.cloud",请使用本项目!
GLaDOS 在 2026 年初进行了 API 更新,绝大多数旧签到脚本已失效。我们通过抓包分析发现了问题:
| 问题 | 旧脚本 | 本项目(已修复) |
|---|---|---|
| 签到 Token | glados.one ❌ |
glados.cloud ✅ |
| 域名支持 | rocks/network ❌ | cloud ✅ |
| 签到结果 | "please checkin via..." | "Checkin!" 或 "Repeats" ✅ |
🔬 技术细节:我们是怎样修复问题的(感兴趣的看)
- GitHub Actions 可以正常运行
- 推送消息显示 "成功0/1"
- 签到结果始终为 "please checkin via https://glados.cloud"
- 手动点击签到按钮正常,但机器人签到无效
1️⃣ 浏览器抓包分析
- 使用 Chrome DevTools 抓取真实签到请求
- 对比浏览器请求和 Python 脚本请求的差异
2️⃣ 尝试的方案(失败)
- ❌ 添加更多 Headers(sec-ch-ua、sec-fetch-* 等)
- ❌ 使用 requests.Session 保持会话
- ❌ 使用 curl_cffi 模拟浏览器 TLS 指纹
- ❌ 添加代理配置
3️⃣ 最终发现 通过对比不同 token 值的请求结果:
# 失败 ❌
{'token': 'glados.one'} → "please checkin via https://glados.cloud"
# 成功 ✅
{'token': 'glados.cloud'} → "Checkin Repeats! Please Try Tomorrow"问题根源:GLaDOS 更新了 API,签到 token 必须从 glados.one 改为 glados.cloud!
📢 重要提示
- GLaDOS 官网已迁移至 glados.cloud(不再是 glados.rocks)
- 本项目专为 2026 积分制度优化,每天自动签到一次
- 完全免费,使用 GitHub Actions,无需自己的服务器
- 不会的话可以提 Issue,作者很乐意帮助技术新手!
| 功能 | 说明 |
|---|---|
| 🎯 精准积分 | 获取真实积分数据 + 每日变化量 |
| 🎁 兑换提示 | 显示当前可兑换选项及差额 |
| ⏰ 每日一次 | 北京时间 9:30 自动签到 |
| 🔄 失败重试 | 最多尝试三次,最终失败才报警 |
| 📱 微信推送 | PushPlus 漂亮 HTML 报告 |
| ☁️ 2026 API | 适配最新 glados.cloud API |
| 🔧 持续维护 | 发现问题及时修复 |
本项目支持以下环境变量配置:
| 变量名 | 必填 | 说明 |
|---|---|---|
GLADOS_COOKIE |
✅ 是 | GLaDOS 的 Cookie。多个账号请用 & 或换行符分隔。 |
PUSHPLUS_TOKEN |
❌ 否 | PushPlus 微信推送 Token。 |
TELEGRAM_BOT_TOKEN |
❌ 否 | Telegram 机器人的 Token(例如 123456:ABC-DEF1234...) |
TELEGRAM_CHAT_ID |
❌ 否 | 接收推送的 Telegram Chat ID |
PUSH_LEVEL |
❌ 否 | 推送级别:fail_only(默认,仅失败推送)或 all(每次均推送) |
📚 给小白的科普:什么是 Fork、Cookie、Secrets?(新手必看)
💡 如果你已经熟悉这些概念,可以跳过这部分直接看 快速部署
🍴 什么是 Fork?
Fork = 把别人的项目复制一份到你自己的账号下。
就像复印一份文档,原件还在别人那里,你有一份自己的副本可以随便改。Fork 之后这个项目就属于你了,你可以自己配置和使用。
🍪 什么是 Cookie?
Cookie = 网站记住你是谁的"通行证"。
当你登录 GLaDOS 后,网站会给你的浏览器一个"通行证"(Cookie),下次访问时浏览器出示这个通行证,网站就知道你是谁了。
我们需要把这个通行证告诉签到程序,这样程序就能"假装"是你去签到。
🔐 什么是 Secrets?
Secrets = 保险箱,用来存放敏感信息。
你的 Cookie 和 Token 都是隐私信息,不能直接写在代码里(否则别人都能看到)。GitHub Secrets 就像一个保险箱,把这些敏感信息锁起来,只有你的程序运行时才能访问。
⚙️ 什么是 GitHub Actions?
GitHub Actions = 免费的自动化机器人。
它可以按照你设定的时间表(比如每天 9:30)自动运行程序。你不需要自己的服务器,GitHub 会免费帮你跑代码。
▶️ 什么是 Run workflow?
Run workflow = 手动测试按钮。
| 按钮 | 作用 |
|---|---|
| Run workflow | 选择 dispatch_source: manual 后立即执行一次,用于测试配置是否正确 |
| 定时任务 | 每天 9:30 自动执行,不需要手动操作 |
简单说:点 Run workflow 是测试,以后会自动运行。
点击页面右上角的 Fork 按钮,将项目复制到你的账号下。
⚠️ 注意:GLaDOS 官网已迁移到 https://glados.cloud,请使用新域名!
在 Edge 浏览器 的扩展商店搜索 Cookie-Editor,安装 Cookie 管理扩展:
💡 提示:以下任意一个扩展都可以使用,只要能显示
koa:sess和koa:sess.sig这两个 Cookie 就行!
- 打开 https://glados.cloud 并登录
- 进入 签到页面(Console → Checkin)
- 点击浏览器右上角的 Cookie-Editor 扩展图标
- 找到并复制这两个值:
koa:sess→ 一串很长的字符串koa:sess.sig→ 一串较短的字符串
将两个值按以下格式组合,注意格式必须完全正确:
koa:sess=你的长字符串; koa:sess.sig=你的短字符串
正确示例:
koa:sess=eyJ1c2VySWQiOjEyMzQ1Njc4OTB9; koa:sess.sig=abcdef123456
常见错误:
- ❌ 缺少分号
; - ❌ 缺少空格(分号后需要一个空格)
- ❌ 值两边多了引号
- ❌ 复制了多余的空格或换行
运行以下 Python 代码验证格式是否正确:
# 将你的 Cookie 粘贴到下面的引号中
cookie = "koa:sess=你的长字符串; koa:sess.sig=你的短字符串"
# 验证
if "koa:sess=" in cookie and "koa:sess.sig=" in cookie and "; " in cookie:
parts = cookie.split("; ")
if len(parts) == 2 and parts[0].startswith("koa:sess=") and parts[1].startswith("koa:sess.sig="):
print("✅ Cookie 格式正确!")
else:
print("❌ 格式错误,请检查分号和空格")
else:
print("❌ Cookie 缺少必要的字段")- 进入你 Fork 的仓库
- 点击 Settings(设置)
- 左侧菜单找到 Secrets and variables → Actions
- 点击右上角 New repository secret
添加以下两个 Secret:
| Name | Value | 必需 |
|---|---|---|
GLADOS_COOKIE |
第二步组合的 Cookie | ✅ 是 |
PUSHPLUS_TOKEN |
微信推送 Token(见下方) | ❌ 否 |
如果你希望签到后收到微信通知,请配置 PushPlus:
- 访问 https://www.pushplus.plus
- 点击右上角 登录,使用微信扫码登录
- 登录后点击 发送消息 → 一对一消息
- 复制页面上显示的 Token(类似
05c3****dd36的字符串)
- 将 Token 添加到 GitHub Secrets,Name 填
PUSHPLUS_TOKEN
- 进入你 Fork 仓库的 Actions 标签页
- 如果看到黄色提示,点击 I understand my workflows, go ahead and enable them
- 点击左侧的 GLaDOS 2026 Checkin
- 点击右侧 Run workflow,选择
dispatch_source: manual后手动测试一次
Important
完成首次手动测试后,内置 schedule 会每天运行。请勿再配置相同时间的外部 cron,否则会重复执行。
新版要求 API 调用显式传入 dispatch_source;旧版仅发送 {"ref":"main"} 的外部任务不会再执行签到,可直接在 cron-job.org 删除。
只有在你的网络环境或 GitHub 计划任务长期不触发时才需要外部 cron。使用它时,请删除或注释 .github/workflows/checkin.yml 中的 schedule,确保只保留一个调度器。
- 访问 https://github.com/settings/tokens
- 推荐点击 Generate new token → Fine-grained personal access token
- Repository access 只选择你自己的
2026-glados-checkinFork - Repository permissions → Actions: Read and write
- 生成后立即复制;不要把 Token 发到 Issue、截图或写入仓库
使用 classic PAT 时,此接口需要
reposcope;workflowscope 主要用于修改 workflow 文件,并不是调用 dispatch 接口的替代权限。优先使用权限更小的 fine-grained PAT。
- 访问 https://cron-job.org 注册账号(免费)
- 注册后登录,点击 Create Cronjob 创建任务
按照以下配置填写:
基本信息:
| 选项 | 填写 |
|---|---|
| Title | GLaDOS 早签到 |
| URL | https://api.github.com/repos/你的用户名/2026-glados-checkin/actions/workflows/checkin.yml/dispatches |
⚠️ 重要:把你的用户名改成你的 GitHub 用户名!比如lankerr
执行时间:选择每天 09:30(Asia/Shanghai 时区)
高级配置(点击 Advanced 展开):
| 选项 | 值 |
|---|---|
| Request method | POST |
| Time zone | Asia/Shanghai |
请求头(Headers):点击 "+ 添加" 添加三行:
| Key | Value |
|---|---|
Accept |
application/vnd.github+json |
Authorization |
Bearer 你复制的GitHub_Token |
Content-Type |
application/json |
Authorization 示例只应写成占位形式:
Bearer github_pat_xxx。不要公开真实 Token。
请求体(Request body):选择 Raw Body,填入:
{ "ref": "main", "inputs": { "dispatch_source": "external" } }配置完成后点击 Save 保存。
- 在任务列表点击 Test run 测试
- 当前 GitHub API 成功时会返回 200;旧 API 版本可能返回 204,两者都代表 dispatch 已接受 ✅
- 到 GitHub 仓库的 Actions 页面查看,应该有新的运行记录
| 错误 | 现象 | 原因 | 解决方法 |
|---|---|---|---|
| 401 Unauthorized | 认证失败 | Authorization 格式错误 | 使用 Bearer github_pat_xxx |
| 422 Unprocessable Entity | 请求无法处理 | Body 缺少 ref 或必填 input | 按上面的完整 Request body 填写 |
| 404 Not Found | 找不到工作流 | Actions 未启用或文件不存在 | 先完成 Fork、启用 Actions 并手动运行一次 |
| Accept 被截断 | 配置错误 | 输入框显示不全 | 完整值:application/vnd.github.v3+json |
| Token 有空格 | 认证失败 | Token 被意外截断 | Token 是连续字符串,中间不能有空格 |
| 权限不足 | 403 错误 | Token 无 Actions 写权限 | fine-grained PAT 设置 Actions: Read and write |
💡 小贴士:遇到 401/422 错误时,先检查上面三行 Headers 是否完全正确!
🎉 完成! 外部 cron 会每天 9:30 触发一次。记得关闭内置 schedule,避免重复运行。
如果你有自己的长期运行的电脑(如树莓派、软路由、VPS 等),也可以非常简单地在本地运行:
首先确保你已经安装了 Python 3,然后安装依赖库:
git clone https://github.com/你的用户名/2026-glados-checkin.git
cd 2026-glados-checkin
pip install -r requirements.txt使用环境变量传递 Cookie 并直接运行 Python 脚本:
# 配置 Cookie
export GLADOS_COOKIE="koa:sess=xxxxxx; koa:sess.sig=yyyyyy"
# 可选:配置推送
export PUSH_LEVEL="all"
export TELEGRAM_BOT_TOKEN="xxx"
export TELEGRAM_CHAT_ID="yyy"
# 执行签到
python3 checkin.py通过 crontab -e 配置每天自动执行(例如每天早上 9:30):
30 9 * * * export GLADOS_COOKIE="koa:sess=xxx..."; cd /path/to/2026-glados-checkin && python3 checkin.py >> glados.log 2>&1本项目提供了标准的 Nix Flake,你可以直接作为 inputs 引入,系统会自动管理 Python 环境和依赖包。
在你的 flake.nix 中引入本项目:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
glados-checkin.url = "github:lankerr/2026-glados-checkin"; # 若本地测试可改写为 path:/绝对路径
};
outputs = { self, nixpkgs, glados-checkin, ... }: {
nixosConfigurations.my-server = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
# 引入 glados-checkin 的 NixOS 模块
glados-checkin.nixosModules.default
({ config, pkgs, ... }: {
# 配置服务
services.glados-checkin = {
enable = true;
cookie = "koa:sess=xxx; koa:sess.sig=yyy";
# 【可选】消息推送配置
pushLevel = "all"; # 或 "fail_only"
pushplusToken = "xxx";
telegramBotToken = "yyy";
telegramChatId = "zzz";
};
})
];
};
};
}部署配置后执行 sudo nixos-rebuild switch --flake .#my-server,签到任务即会自动注册为 systemd timers。
签到成功后,你会在微信收到类似这样的推送:
👤 your@email.com
当前积分: 46 (+20)
剩余天数: 353 天
签到结果: Bindweed! Bindweed!
🎁 兑换选项:
❌ 100分→10天 (差54分)
❌ 200分→30天 (差154分)
❌ 500分→100天 (差454分)
| 时间(北京时间) | 说明 |
|---|---|
| 09:30 | 早间签到 |
默认使用 GitHub Actions;脚本内部最多尝试三次。外部 cron 是备用方案,不应与内置 schedule 同时启用。
Q: GitHub Actions 会不会在两个月后停止?
GitHub 官方规则是:公开仓库连续 60 天没有仓库活动时,计划任务会自动停用。计划任务还可能因高负载延迟,尤其是在整点附近。
本项目的 .github/workflows/keep-alive.yml 每月更新一次 .github/last-active.txt,早于 60 天期限。若你是旧 Fork:
- 点击 Sync fork → Update branch。
- 打开 Actions,选择两个 workflow,确认状态为 Enabled。
- 手动运行一次
GLaDOS 2026 Checkin验证 Cookie。
Q: cron-job.org 测试返回 401/404/422 错误怎么办?
请对照以下检查:
401 Unauthorized(认证失败):
❌ Authorization: github_pat_xxx
✅ Authorization: Bearer github_pat_xxx
注意:Bearer 前缀后面必须有一个空格。
404 Not Found:先完成 Fork,在 GitHub Actions 页面启用工作流并手动运行一次;同时确认 URL 中的用户名和仓库名正确。
422 Unprocessable Entity(请求无法处理):
❌ Body: {"ref": "main"}
✅ Body: {"ref": "main", "inputs": {"dispatch_source": "external"}}
本工作流要求同时指定分支名和 dispatch_source,用来阻止旧外部定时器继续重复签到。
其他检查:
- Accept 头是否完整:
application/vnd.github+json - Fine-grained PAT 是否有目标仓库的
Actions: Read and write权限 - Token 是否过期(检查 Expiration 设置)
Q: 显示 "please checkin via https://glados.cloud" 怎么办?
这表示你使用的签到脚本已过期!GLaDOS 在 2026 年更新了 API,旧脚本的 token 值 glados.one 已失效。
解决方案:使用本项目,我们已经修复了这个问题(token 改为 glados.cloud)。
Q: 显示 "Checkin Repeats! Please Try Tomorrow" 是什么意思?
这表示今天已经成功签到过了!这是正常的成功响应,说明签到功能正常工作。
Q: Cookie 多久过期?
没有固定保证。退出登录、修改密码、服务端会话策略变化都可能让 Cookie 提前失效。Actions 真正失败并提示登录/认证问题时,重新获取 Cookie 并更新 GLADOS_COOKIE 即可。
Q: 支持多个账号吗?
支持!用英文符号 & 分隔多个 Cookie:
cookie1&cookie2&cookie3
Q: 没有收到微信推送怎么办?
- 检查
PUSHPLUS_TOKEN是否配置正确 - 在 PushPlus 网站测试发送功能是否正常
- 查看 Actions 运行日志是否有错误
PushPlus 完全可选,不影响签到。若 PushPlus 当前要求实名认证而你不想认证,可以删除 PUSHPLUS_TOKEN,或改用可选的 Telegram 推送;实名认证规则由 PushPlus 决定,本项目无法绕过。
Q: 为什么一天运行多次、收到多条通知?
通常是同时启用了 GitHub 内置 schedule 和 cron-job.org。请二选一;本项目默认只需内置 schedule。新版默认 PUSH_LEVEL=fail_only,正常完成时不会反复推送。
Q: 积分、兑换天数和流量怎么算?
本项目只读取 GLaDOS API 返回的积分、剩余天数和兑换选项,不制定会员或流量规则。服务条款可能变化,请以 GLaDOS 控制台当时显示的套餐与兑换页面为准;README 不对固定积分、流量或天数作长期承诺。
Q: Actions 运行失败怎么办?
- 点击失败的运行记录查看详细日志
- 检查 Cookie 格式是否正确
- 如果还是不行,欢迎提 Issue!
GitHub 的 schedule 不是实时调度器:高负载时可能延迟,极端情况下可能丢弃排队任务;公开仓库连续 60 天无活动会自动停用 schedule。为降低风险,本项目采用非整点运行、脚本内三次重试和每月一次保活提交。
这仍不能保证第三方服务 100% 可用:GLaDOS 宕机、Cookie 失效、GitHub 故障或用户自行关闭 Actions 时,签到会失败。新版会让真正失败返回非零退出码,以便 Actions 邮件和可选通知准确报警。
| 文件 | 说明 |
|---|---|
checkin.py |
核心签到脚本 |
.github/workflows/checkin.yml |
GitHub Actions 配置 |
requirements.txt |
Python 依赖 |
tests/ |
结果判断与重试测试 |
images/ |
教程截图 |
- 📝 提 Issue:遇到问题请提 Issue,作者很乐意帮助技术新手!
- ⭐ Star:如果对你有帮助,请点个 Star 支持一下
- 🍴 Fork:欢迎 Fork 并贡献代码
- 识别
Today's observation logged...等 2026 正常返回,不再显示“成功 0/1” - 失败自动重试三次,最终失败返回非零退出码
- 默认仅失败推送,避免多个调度器造成通知轰炸
- 每天一次签到、每月一次保活,替代每天保活提交
- 修正 workflow dispatch 的 PAT 权限、HTTP 状态码和 404 排障说明
问题:签到始终返回 "please checkin via https://glados.cloud",导致机器人无法签到。
原因:GLaDOS 官方更新了 API,签到 token 必须从 glados.one 改为 glados.cloud。
修复:更新 checkin.py 中的 token 参数。
排查过程:
- 使用浏览器 DevTools 抓包分析真实签到请求
- 对比 Python 脚本与浏览器请求的差异
- 尝试添加 Headers、模拟 TLS 指纹等方案(均无效)
- 最终通过测试不同 token 值发现问题根源
💡 如果你在使用其他签到项目遇到同样问题,可以参考本项目的修复方案!
- 初始版本发布
- 支持 glados.cloud 域名
- PushPlus 微信推送
- GitHub Actions 自动签到
MIT
Made with ❤️ for GLaDOS users in 2026
🔧 本项目最近一次维护验证:2026-08-05
⭐ Star 一下,支持作者持续更新!⭐











