点击角标可跳转至开源仓库:https://gitee.com/yehai/bing-rewards
Microsoft Rewards(必应积分)自动化脚本,每天在后台自动完成签入、阅读、活动卡片、任务卡、搜索等任务,并把服务端真实结果汇总后推送到你的聊天工具。
本脚本开源免费(MIT),请勿购买任何收费版本。
任务按七分类管理(UserConfig 可分别开关):
| 分类 | 说明 |
|---|---|
| 连签 | PC + App 双端签到(服务端计数器 DailyCheckIn_* 为准)、连续打卡进度、Edge 浏览打卡(SSR 全文解析「分钟: x/y」+ sr-only 连签天数,三态显示:进度 / 进度未知 / 未投放);非 Edge 浏览器固定显示「不适用」且不计入总进度(1.4.3) |
| 日常 | 日常活动卡(兜底桶):0 分卡自动跳过(1.4.3 起 0 分过滤只作用于日常与任务卡,每日卡豁免)、🔒 锁头卡计数(1.4.0 起不再显示 🔓)、Quiz / 拼图自动上报 |
| 每日 | 每日三连卡(Gamification_DailySet_*),按天过滤,走 DAPI 通道;Flight chunk 完整 JSON 块解析完成态(1.4.2 修复相邻卡窗口污染误判),以服务端完成列表为准、本地记录冲突时自动复核;不做 0 分过滤(每日卡不存在 0 分卡,过滤只会误杀) |
| 任务 | 任务卡(PunchCard 父卡 + 子项):详情页用桌面应用 UA 拉取(普通 UA 下子项渲染成 0 分+全锁定);桌面应用周任务自动执行(应用 UA 扫卡 → 应用内搜索上报 → Server Action 交卷 → 回读复核);跨轮记忆——子项全部完成后服务端会撤下子项,按记忆仍显示 x/x;解析不到子项时按 0/0 展示且不计入总进度(1.4.3) |
| 搜索 | PC + 手机搜索配额(随机词 / 热搜词),每次有效搜索计 1 分 |
| 探索 | Explore on Bing 探索卡:激活 → 类目搜索 → 复核,独立于搜索配额 |
| 阅读 | 自动识别 msnreadearn / readarticle offerId,兼容各区域 |
其他能力:
| 能力 | 说明 |
|---|---|
| 调度时间窗 | 每天 8~23 点每 20 分钟执行一轮(23 点整最后一轮),起止小时可配置 |
| 待领取积分 | 双通道自动领取:页面上下文代按「领取」按钮;后台运行直接调 reportClaimAllPoints Server Action(页面解析不到 action id 时用兜底 id),以待领数量减少复核到账(1.4.2 起) |
| 卡片上报 | origin 同源通道 → Server Action → DAPI;Edge 下 Referer 受限时明确提示换 Chrome |
| 启动预检 | 每轮开始先读服务端状态,跳过已完成任务,避免重复执行 |
| 就绪探测 | 唤醒/休眠后先探测网络,未就绪直接中止本轮,不产生无效失败 |
| 防重复运行 | 持久化运行锁 + 心跳,避免休眠唤醒后新旧两轮同时执行 |
| 结果复核 | 上报后轮询多证据:余额增量 / DAPI p>0 / 页面状态跃迁;无证据即计失败,不虚报 |
| 汇总推送 | 半程进度、每日日报、异常提醒,按天去重,统一模板输出 |
半程 / 日报 / 调试共用一套模板,推送使用服务端数据(DAPI 余额 + earn/quest 页扫描):
📊 日报 11-04 · 10620🪙 · 今日 +128🪙 · 待领 66🪙 · 进度 4/7
【连签】🔥 17 天 · 签到 PC ✅ / APP ✅ · 搜索 ✅ · Edge 打卡 ✅ 30/30分钟 4/7
【升级】⬆ 1/2 项 · 1 项任选
✅ 必应搜索连续打卡 7/7
⏳ Edge 浏览连续打卡 4/7
【每日】3/3
【任务】🧩 2/5 · Duolingo 1/3 · 必应月度 1/2
【日常】🎯 5/8 张 · 🔒2 · 45/60🪙
【积分】🔍 电脑 60/60🪙 · 手机 — · 📖 阅读 30/30🪙
【Tips】Edge 156 | 待领请手动领取:rewards.bing.com
d/7:七分类中已完成分类数,全完成追加 ✅。任务卡 0/0(子项已被服务端撤下)与无探索卡的 0/0 按「无待办」处理、不计入;非 Edge 环境的 Edge 打卡同样不计入(1.4.3)✅|⏳ p/m unit day/dayMax;读不到显示「进度未知」;非 Edge 浏览器显示「不适用」且不计入总进度。判定按「earn 卡片数据 → earn 文案 → 首页文案」逐级兜底,文案按 edge 命中点前 80 / 后 320 字符取窗口(要求窗口内有「浏览」,避免把「安装 Edge」误判成打卡);仍判未激活时日志留一条 Edge 打卡原文(earn/home): …(debug),可据此区分「文案改版」与「模块由客户端渲染」d/t 为子项完成/子项总数(DAPI 与页面扫描合并去重),后可跟父卡缩写与各自 d/t;无子项时显示 0/0(不计入进度)🔒m 为锁头卡数,不再展示 🔓0/0、探索 0/0 与非 Edge 环境的 Edge 打卡不再阻止 7/7 判定| 卡片类型 | 判定依据 | 1.4.0 行为 |
|---|---|---|
| 普通活动卡 / 内容访问卡 | 无锁头、有目标链接、分数 > 0 | 走 origin 同源 / Server Action / DAPI 上报,按到账证据判定(不打开标签页) |
| 任务卡(punchcard) | offerId 含 pcparent / pcchild(非 App 系列) |
Server Action(origin)+ DAPI 上报,回查子项状态是否由未完成转为完成 |
| 锁头卡 | exclusiveLockedFeatureStatus=locked 或文案「仅限积分商城应用」 |
计入 🔒、不进分母、不执行(PC 网页端前端置灰,无法完成) |
| 桌面 App 周专属 | offerId 含 RewardsApp_weekly |
1.4.2 起支持自动执行:桌面应用 UA 扫 earn 拿到解锁子项与 hash → bing.com/rewardsapp/reportActivity 应用内搜索上报 → Server Action(桌面特征头)交卷 → 回读 isCompleted 复核到账;Install_RewardsApp(安装引导)仍排除 |
| 冷却中子项 | isLocked=true(打孔卡阶段冷却,间隔约 24 小时) |
不进分母、不执行、不告警,次日再扫 |
完成判定采用多证据:余额增量 > 0、DAPI activity
p > 0、或 earn/quest 页状态由未完成转为完成(历史已完成不算本次到账,上报前已完成直接跳过)。三者皆无即计失败并留待下轮重试,不再出现「已上报(暂无法回查状态)」式的虚报成功。失败卡只在日志里留一条 warn(任务名 + offerId + 手动入口链接),不进推送,需要时从「导出日志」里取链接手动处理。
活动卡的上报通道(重要):服务端会校验 Referer。可行方式只有两种——① 把脚本运行在
rewards.bing.com页面(脚本用同源fetch上报,Referer/Origin/Cookie 由浏览器自动生成);② 改用 Chrome(Chrome 下GM_xmlhttpRequest可以为 rewards 域设置 Referer)。新版 Edge 的后台脚本两条都不满足时,活动卡不会到账:脚本不会打开任何标签页"假装完成",日志会记一条 warn,推送 Tips 也会提示改用 Chrome 或换运行页面。注意脚本头有
@crontab */20 8-23 * * *,默认以后台定时脚本运行,此时没有页面 origin,①不生效。想让 origin 通道生效,需要保留一个rewards.bing.com标签页(该页实例抢到运行锁那一轮才走同源通道);后台定时轮与页面轮通过持久化运行锁互斥,不会并行。
Chrome 已实测(2026-11-04):同一脚本在 Chrome 下活动卡可正常到账,与 Edge 的差别就是能否为 rewards 域设置 Referer。
| 任务 | Edge 后台脚本 | 上报路径 / 依据 |
|---|---|---|
| 【任务】punchcard 子项 | ❌ 实测失败(Server Action 500) | claimCard → Server Action POST /earn |
【日常】解锁卡(exclusiveLockedFeatureStatus=unlocked,页面上带 🔓 标识的卡) |
❌ 实测失败 | 内容访问 / urlreward 类,需网页上报 |
| 【日常】普通活动卡(无 🔓 标识) | ✅ Edge 下可到账 | DAPI /dapi/me/activities |
| 【探索】Explore on Bing 激活 | ⚠ 未单独验证 | 激活请求同走 rewards 域,预计同样受限 |
| 【每日】DailySet 三连卡 | ✅ 实测可到账(不需要 origin) | DAPI /dapi/me/activities,不经网页上报 |
| 【连签】PC / APP 签到 | ✅ 正常 | DAPI + 网页签到接口 |
| 【阅读】文章 | ✅ 正常 | DAPI msnreadearn |
| 【搜索】PC / 手机 | ✅ 正常 | bing.com/rewardsapp/reportActivity |
| 【待领】 | ✅ 正常(仅提示) | 不产生上报 |
| 桌面 App 卡 | ✅ 1.4.2 起支持 | 桌面应用 UA + rewardsapp 搜索上报 + Server Action 交卷 |
上表中标 ❌ 的卡,在「Edge + 不在 rewards 页面」时会被直接跳过执行(只记一条 debug 日志,轮次末尾汇总
N 张卡需 Chrome 或在 rewards.bing.com 页面运行),不再发送注定失败的请求;分母与统计口径不变,仍如实显示未完成。可在用户配置里关掉Edge下跳过需origin的卡恢复原行为。
Referer / Origin 属浏览器禁止 JS 修改的头:MV3 下扩展只能用 declarativeNetRequest 改,MV2 下可用 webRequestBlocking 直接改。ExtensionManifestV2Availability(Edge ≥123,需域加入或策略管理设备)可强制启用 MV2,但该策略会随 MV2 一并移除。rewards.bing.com 页面运行(origin 通道)。支持渠道:企业微信、钉钉、飞书群机器人、PushMe、Bark(均为可选,不填不发时白名单消息降级浏览器通知)。
https://rewards.bing.com/,脚本会在后台自动运行脚本需要 OAuth Token 才能完成 App 端签到 / 阅读 / DAPI 任务。首次运行时:
login.live.com/oauth20_desktop.srf?code=...说明:
脚本在后台 service worker 中运行,浏览器会丢弃手动设置的 Cookie 头,因此 PC 签到、搜索上报、活动卡上报仍然依赖你的必应网页会话(活动卡还会额外校验 Referer,见上文「活动卡的上报通道」):
IsAuthenticated:false(搜索上报不再计分)时才需要重新登录:打开 https://cn.bing.com/?scope=web,点击右上角「登录」后即可恢复HTTP 401 多为休眠唤醒后会话/防伪 Token 尚未就绪,脚本会等待搜索结束后用服务端计数器复核签到状态,不会直接判定会话失效菜单收敛为固定项(1.3.0),二次选择用 prompt 编号输入,执行成功 / 失败均有 alert 提示,取消不提示:
| 菜单 | 功能 |
|---|---|
| 立即运行 | 立即执行一遍全部任务 |
| 手动授权 | 打开微软授权页面(登录后复制跳转 URL) |
| 粘贴授权码 | 粘贴跳转 URL / 授权码,立即换取 Token |
| 诊断与日志 | 1. 调试信息(任务执行、授权/Token、Cookie、地区、浏览器信息、最近报错) 2. 导出日志(最近 500 条复制到剪贴板) |
| 测试通知 | 发送测试消息验证推送配置 |
| 重置 | 1. 重置任务进度 2. 重置授权信息 |
推送渠道配置已迁入脚本的「用户配置」面板(UserConfig),不再占用菜单。
脚本配置面板(ScriptCat「用户配置」)分三组(1.3.0 起全部配置集中于此):
Config(基础/运行)
持续检测:全部任务完成后是否继续后台检测(默认开)锁定国区:非大陆 IP 自动停止,避免账号风险(默认开)搜索间隔:PC 搜索间隔秒数,30 秒起(默认 30±15)每轮搜索次数:0 为自动(8~15 次)调度开始/结束小时:每天执行时间窗(默认 8~23 点,每 20 分钟一轮,23 点整最后一轮)跳过无积分任务:0 分卡不做(默认开)Edge下跳过需origin的卡:Edge 且不在 rewards 页面时,不执行任务卡子项 / 日常解锁卡 / 探索卡,避免必然 500 的无效请求(默认开;Chrome 下不受影响,关掉后恢复"照发请求、失败计失败")自动领取待领积分:在 rewards.bing.com 页面代按「领取」并以待领数量减少复核;后台运行只提醒(默认开)桌面专享卡单卡探测:每天 1 张、只写诊断日志(默认关)搜索词接口:offline(内置随机词,不联网)或热搜 API(拉取真实热搜词)授权码链接:粘贴授权跳转 URL 的文本框(也可用菜单操作)Tasks(七分类任务开关)
Notice(推送渠道)
脚本遵循「数据最少化」原则,全部数据仅存于浏览器本地(GM 存储),不会将任何账号凭据、Token、Cookie 发送到第三方服务器。对外网络请求仅限以下几类:
| 目标 | 用途 | 是否默认开启 | 上送数据 |
|---|---|---|---|
| login.live.com | OAuth 授权 / 换取 Token | 是(功能必需) | 授权码 / refresh_token(微软官方 OAuth) |
| rewards.bing.com、cn.bing.com、www.bing.com | 任务完成、搜索、上报 | 是(功能必需) | 任务参数、搜索词(与手动使用必应一致) |
| prod.rewardsplatform.microsoft.com | App 端签到 / 阅读 / 任务领取 | 是(功能必需) | 任务上报参数 + Bearer Token(微软官方 Rewards API) |
| hot.baiwumm.com / cnxiaobai.com / hotapi.nntool.cc | 获取热搜词做搜索模拟 | 否(默认 offline) |
仅 GET 拉取热搜列表,无任何账号数据 |
| disp-qryapi.3g.qq.com | IP 归属地查询 | 仅在 IP 非大陆时触发 | 仅 GET,无账号数据 |
| 企业微信 / 钉钉 / 飞书 / PushMe / Bark | 任务完成通知推送 | 否(需自行填密钥) | 仅任务状态文案,不含 Token / 账号信息 |
安全建议:
offline 可完全避免第三方热榜服务访问@connect 中的第三方域名行(不影响核心任务功能)Q:提示「自动获取授权码失败」? 点「🔑 手动授权」登录后,复制完整跳转 URL 到「📋 粘贴授权码」。
Q:手动粘贴授权码一直没用? v1.0.1 起已修复:粘贴后立即换 Token 并弹窗反馈;若提示失败,请重新授权获取新码(授权码一次性)。
Q:签到明明完成了,脚本却显示未签到?
v1.1.0 起签到状态改为读取服务端计数器(DailyCheckIn_Sapphire* / DailyCheckIn_Bing_*),不再依赖页面文案;PC/APP 都完成才会跳过重复签入。
Q:搜索一直完成不了 / 搜索了不积分?
v1.2.0 起只有日志出现 IsAuthenticated:false 才表示网页会话真的失效,按上文「网页会话」重新登录即可;单独的 HTTP 401 不再等同于会话过期。v1.1.0 已修正本地进度每次 +3 的误判,改为每次有效搜索 +1。
Q:「待领取积分」会自动领取吗?
1.4.2 起双通道支持:脚本运行在 rewards.bing.com 页面时,按「领取 / Claim」文案或 claim 属性精确匹配可见按钮代按一次;后台定时运行时直接调用页面「领取」按钮背后的 reportClaimAllPoints Server Action(页面解析不到 action id 时使用兜底 id 并记日志),两种通道都以待领数量减少才算领取成功,否则记「未确认到账」并提示手动领取。可在用户配置里用 自动领取待领积分 关闭。
Q:任务卡片 / 打卡活动不自动完成?
v1.4.0 起改为「多证据判定 + origin 同源上报」:只有余额增量、DAPI p>0、或页面状态由未完成转为完成三者之一出现才算成功,否则计失败留待下轮,不再有「暂无法回查状态」式的虚报;前后台标签页访问方案已删除(实测均不到账)。如果浏览器是 Edge,【任务】子项、【日常】🔓 解锁卡、【探索】激活会因无法设置 Referer 而失败——这是浏览器限制,不是脚本缺陷,改用 Chrome 或在 rewards.bing.com 页面运行即可。脚本会记日志、在推送 Tips 提示,并默认跳过这些注定失败的请求(可在用户配置里关掉 Edge下跳过需origin的卡)。诊断详情见「诊断与日志 → 调试信息」。
Q:打卡类任务带锁是什么?
锁表示该活动当前未解锁(数据字段 exclusiveLockedFeatureStatus==='locked',常见原因是等级或前置任务未达成)。解锁前不会执行,日报【日常】行的 🔒m 会统计锁定卡数;达成条件解锁后(unlocked)自动执行——注意这类解锁卡在 Edge 下需要 Chrome 或 origin 页面才能到账(见上文「哪些任务需要 Chrome」)。
Q:页面上明明有 Edge 打卡任务,脚本却显示「未激活」?
1.4.1 前的判定过窄:卡片只比对 offerId/title,文案又要求 Edge 与「浏览」相距 ≤80 字符、与「分钟: 30/30」相距 ≤140 字符——而 earn 页是 Next.js RSC 数据,标题与进度之间常夹着大段 JSON,窗口一超就落到「未检测到」。现在改为 title/offerId/subType/type/destination 全字段匹配 + 前 80 / 后 320 字符窗口解析,并补了 rewards.bing.com/ 首页兜底。若仍显示未激活,看「诊断与日志」里 Edge 打卡原文(earn/home): …:有片段说明是文案又改版了(把该行贴出来即可修);提示「无 Edge 字样」说明该模块由客户端渲染、服务端 HTML 里没有,需要换数据源。
Q:任务显示 0/0、Edge 打卡显示「不适用」,会不会拖住日报?
1.4.3 起不会。任务卡解析不到子项(多数是子项已全部完成、被服务端撤下)按 0/0 展示但视为无待办;没有探索卡的 0/0 同样按无待办处理;非 Edge 浏览器的 Edge 打卡本就不可能完成,统一显示「不适用」。三者都不再阻止 进度 7/7 判定与日报推送。
Q:某天完全没有推送,是没跑还是跑了没到账?
看日志首行:出现 运行上下文: …(扩展/后台) 说明正常启动;只有 当前为安装/管理/搜索/访问页,不初始化任务 说明初始化被跳过,任务一次都没执行。1.4.1 起只跳过两类上下文——扩展自己的设置/安装/弹窗页(跑任务只会报错)与必应搜索页(会抢掉当天搜索配额),其余页面一律放行;若距上次成功执行 ≥12 小时,启动时会补推一次【启动告警】。彻底没加载(扩展被禁用、浏览器未开)时无法主动通知。
Q:推送太长,聊天窗口看不全? v1.3.0 起统一模板按分类分行(【连签】【升级】【每日】【任务】【日常】【积分】【Tips】),字段紧凑排列;【升级】【连签】中不存在的任务段会自动省略。
Q:脚本启动时如何避免重复做已完成任务? v1.1.0 新增启动预检:每轮开始先读取服务端签到状态、阅读/搜索计数与已完成活动列表,已完成项直接跳过。 v1.2.0 增加冷启动就绪探测与持久化运行锁:唤醒后网络未就绪会等待再跑,休眠前后也不会出现两轮同时执行。
本脚本仅供学习交流,使用风险自负。请遵守 Microsoft 服务条款,控制使用频率,避免账号异常。
MIT