微软 Rewards 页面内自动化助手:搜索积分、每日签到、阅读任务、活动交卷、月度/周度打卡查看,全部在悬浮面板里一键完成。
本项目基于原版项目进行二次开发,在 AI 辅助下对核心链路做了深度修复与重构:新版 Next.js 站点 server action 交卷、dapi APP 通道兜底、真实上限容错、可领取积分提示等。
A modified version of the original Microsoft Rewards script. Refactored with AI assistance for the new Next.js rewards site, dual-channel task submission, and more reliable progress tracking.
| 模块 | 说明 |
|---|---|
| 🎯 日常活动 | 逐条提示每个任务结果,最后给一条完整汇总(成功/需手动/失败/跳过及原因);搜索类活动卡自动过滤,不误报完成失败 |
| 🔍 搜索任务 | 自动搜索攒积分,热搜词多源随机;按真实上限自动停止,预估偏差时自动补搜(最多 2 轮容错) |
| 📖 阅读任务 | 按每篇 3 分推进阅读进度,自动算出剩余篇数并逐步提交 |
| 📅 每日签到 | 走 APP 移动端通道签到,服务器状态优先,本地记录兜底 |
| 📋 其他任务 | 月度 / 周度 / 限时打卡,只读展示进度,不误提交子项;今天可推进的标红;点某条时,选中列与下方详情区一起显示淡紫细描边并展开任务名 |
| 🎁 可领取积分 | 检测 dashboard 待领取积分并在面板提示,每天最多通知一次;「去领取 →」直达官网领取面板 |
| 🖱 悬浮球 | 折叠时拖球、展开时拖标题栏即可移动,位置自动保存并限制在视口内;脚本菜单「↺ 复位悬浮球位置」可还原默认右下角 |
其他改进:
name / promotionType 判定,链接指向搜索页的每日任务卡照常交卷)等无效卡片rewards.bing.com 页面注定 500,收集阶段就挑出来并从待办里分流,日志提示有几个需去 rewards 页面手动完成任选其一:
get-microsoft-rewards.user.js 全部内容粘贴进去保存访问以下任一站点,右下角会出现悬浮面板(默认折叠):
https://www.bing.com
https://cn.bing.com
💡 领取入口:面板出现「🎁 可领取积分」时,点右侧橙色的「去领取 →」直接进入领取界面;新标签不会中断当前页正在跑的任务。脚本只负责带你到领取界面,不会代你提交领取。
刷新页面后,右下角出现「🎁」悬浮按钮,点击即可展开。
打开面板后若看到 ⚠️ 需授权 区块,说明还没拿到 APP 通道 token(签到/活动/阅读会受影响):
📥 已自动捕获授权码… → 🎉 授权成功!旧的手动方式仍然可用:如果自动捕获没生效(比如被拦截、或换了设备),把跳转后空白页的完整网址粘贴到输入框点 保存 即可;也支持直接粘贴裸授权码(不含网址)。
保存成功后授权区块会自动隐藏。token 过期时脚本会自动用 refresh_token 续期,一般不需要重复授权。
自动捕获的细节:
visibilitychange / focus)会自动触发兑换,不需要刷新页面展开面板可以看到这些行:
等级 🏅 金牌 [✓ 已同步] 12,345 pts
🔐 未登录 Microsoft Rewards,… 去登录 → ← 未登录才显示,整条可点
🎁 可领取积分 去领取 → 500 ← 有待领积分才显示,点按钮直达领取面板
📅 每日签到 已签到
🎯 日常活动 3/5
██████░░░░ ← 绿色进度条
📖 阅读任务 12/30
████░░░░░░ ← 橙色进度条
🔍 搜索任务 60/60
██████████ ← 蓝色进度条
📋 其他任务 前往完成 2/3
周 0/8 月 2/5 限 5/6 ← 紫色分段线
▬▬▬ ▬▬▬▬▬▬▬ ▬▬▬▬▬▬▬▬▬▬
同步徽章:积分数字左侧常驻一个小徽章,反映整份面板数据的新鲜度。
| 徽章 | 含义 |
|---|---|
| ✓ 已同步(绿) | 这一轮成功拿到了 Rewards 数据 |
| ⟳ 同步中(灰) | 脚本刚启动还没成功过,或你刚点了徽章正在同步 |
| ⚠ 未同步(红) | 见下表。此时 pts 显示的是上次成功获取的数值 |
「📋 其他任务」:
周/月/限 + 已完成/总数,下方是该任务的进度线rewards.bing.com/earn,一眼看全部可做任务rewards.bing.com/earn/quest/<任务>,用于手动补齐脚本做不了的子项面板底部有 5 个按钮:
| 按钮 | 作用 |
|---|---|
| 🔍 搜索 | 执行搜索任务(含暂停机制) |
| 🎯 活动 | 交卷所有未完成的日常活动 |
| ✅ 签到 | 执行每日签到 |
| 📖 阅读 | 执行阅读任务;运行中按钮变成「⏹ 停止阅读」 |
| 🚀 一键全部执行 | 依次执行 签到 → 阅读 → 活动 → 搜索 |
暂停/继续:只要有任务在跑(无论是单任务还是一键),底部按钮会变成 「⏸️ 暂停执行」,点一下即可暂停;暂停后按钮变成 「▶️ 继续执行」,点一下接着跑。各任务在每次循环前都有暂停检查点,会在当前这一步做完后停下。
面板底部日志区记录每一步动作,保留最近 200 条,自动滚到底部。
活动任务日志示例:
▶️ (1/5) 执行: 每日测验
✅ (1/5) 每日测验 完成 +10 分
☕ 随机等待 3.4 秒(下一项活动)...
🟡 (2/5) 某活动 需手动完成(服务端未记账)
🏁 活动全部完成:成功 3 个,需手动 1 个,失败 0 个,跳过 3 个(1 个需 App 解锁、1 个打卡任务、1 个搜索类任务),到账积分 30/50(本次 +30)
打开脚本,修改顶部 CONFIG 对象:
const CONFIG = {
pc: { minDelay: 18000, maxDelay: 35000 }, // 搜索间隔(毫秒),手机见 mobile: 25000~45000
read: { minDelay: 15000, maxDelay: 30000 }, // 阅读间隔(毫秒)
pause: {
enabled: true, // 是否开启定期长暂停(防风控)
interval: 15, // 每搜多少次触发一次长暂停
duration: () => (2 + Math.random() * 3) * 60 * 1000 // 暂停 2~5 分钟
}
};
minDelay/maxDelay 调小,但过低容易触发风控pause.interval 调大,或 enabled: false 关闭state.country),活动卡片据此过滤;无需手动配置| 存储键 | 用途 |
|---|---|
mr_search_progress |
当日搜索进度(跨页面/刷新恢复) |
mr_promo_score |
当日活动积分统计 |
mr_quest_state |
当日打卡任务进度与标题缓存 |
mr_action_cache |
Next.js server action 标识缓存 |
refresh_token / auth_code |
APP 通道授权凭据 |
Config.lastSignDate |
本地签到日期(兜底用) |
Config.claimNoticeDate |
可领取积分通知去重日期 |
mr_panel_pos |
悬浮球位置(距视口右 / 下边缘的像素);删除或用菜单复位即回默认右下角 |
需要重置某天数据时,在脚本管理器里删除对应键即可;跨天会自动重置。