| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
基于 TypeScript · Playwright · Cheerio 的微软奖励自动化脚本
针对国内用户深度本地化:✅ 中国热搜查询源(百度/头条/抖音/微博/知乎) · ✅ 日志中文化 · ✅ PushPlus 微信推送
ℹ️ 分支选择建议
- main 分支(v3,稳定版):已兼容微软新版 UI,实测未发现明显异常,可放心日常使用。
- V4-china 分支(v4 新架构,基本可用):搜索、活动、签到、Read-to-Earn、微信推送(PushPlus / ClawBot)等核心功能已实测通过(2026-08),可以切换日常使用;新架构仍在迭代,偶发小问题属正常,追求稳定可继续留在 main 分支。
两分支配置文件结构不同,互不兼容;迁移 V4-china 请按其 README 重新配置 .env / config.json。
账户管理
自动化与控制
搜索与活动
搜索词来源(中国地区)
测验与互动内容
通知与监控
本脚本支持两种部署方式,按你的场景二选一即可:
| 维度 | 📦 Windows 直跑 | 🐳 Docker |
|---|---|---|
| 配置方式 | 手动编辑 accounts.json + config.json | .env + compose.yaml 环境变量 |
| 调度 | 手动 / 计划任务 | 内置 cron |
| headless | 可选(可见窗口) | 强制 true(无显示器) |
| 数据持久化 | sessions/ 目录 | ./config/ + ./sessions/ 挂载 |
| 升级方式 | git pull + npm run build | docker compose up -d --build |
| 前置要求 | Node.js 24+ | Docker + Docker Compose |
详细步骤见下方对应章节。
🔧 自动设置(推荐,一键部署)⚠️ 本项目所有改动基于 Win11 系统测试,其他系统请参考原项目相关配置。
下载或克隆源代码
下载安装 Node.js 24 和 npm 环境
运行 npm install 安装依赖包
若出现 Error: browserType.launch: Executable doesn't exist 报错,执行:
npx patchright install chromium将 accounts.example.json 重命名为 accounts.json,并添加你的账户信息
按照你的喜好修改 config.json 文件
运行预构建脚本:
npm run pre-build构建脚本:
npm run build启动:
npm start从模板复制并填写:
cp env.example .env编辑 .env,至少填一个账号:
ACCOUNT_1_EMAIL=you@example.com
ACCOUNT_1_PASSWORD=your_password
# 国内账号推荐加:
ACCOUNT_1_GEO_LOCALE=cn
ACCOUNT_1_LANG_CODE=zh多账号按 ACCOUNT_2_*、ACCOUNT_3_* 递增,编号必须连续。完整字段见 env.example。
默认配置开箱即用,如需调整取消对应行注释即可:
完整的 CONFIG_* 环境变量列表见 scripts/docker/entrypoint.sh 顶部注释。
无需手动设置。Docker 环境下 headless 被容器入口强制设为 true(容器内无显示器,无法开窗口模式)。
docker compose up -d --build重要:改了代码或 Dockerfile 后,必须加 --build 参数重建镜像,否则跑的还是旧镜像。首次部署也建议带 --build。
容器挂载了两个目录,重建容器不丢数据:
docker compose up -d --build # 构建+启动
docker compose logs -f # 查看日志
docker compose down # 停止并删除容器
docker compose restart # 重启(不重建)🔵 Core / 核心配置编辑 src/config.json(Windows)或通过 CONFIG_* 环境变量(Docker)自定义行为。 下面按功能分组,点击各 summary 展开详情。
| 设置 | 描述 | 默认值 |
|---|---|---|
| baseURL | Microsoft Rewards base URL | https://rewards.bing.com |
| sessionPath | 用于存储浏览器会话的文件夹 | sessions |
| headless | 在后台运行浏览器 | false(可见) |
| clusters | 并发账户实例数 | 1 |
| errorDiagnostics | 出错时自动截图诊断 | true |
| debugLogs | 输出 DEBUG 级别日志(也可用 -dev 启动参数临时开启) | false |
| 设置 | 描述 | 默认值 |
|---|---|---|
| saveFingerprint.mobile | 重用移动浏览器指纹 | false |
| saveFingerprint.desktop | 重用桌面浏览器指纹 | false |
| 设置 | 描述 | 默认值 |
|---|---|---|
| workers.doDailySet | 完成每日集活动 | true |
| workers.doSpecialPromotions | 完成特殊促销活动 | true |
| workers.doMorePromotions | 完成促销优惠 | true |
| workers.doClaimBonusPoints | 领取 dashboard 上的奖励积分(新版 UI 走 Server Action) | true |
| workers.doPunchCards | 完成打卡活动 | true |
| workers.doAppPromotions | 完成 App 端活动(ReadToEarn / DailyCheckIn 等) | true |
| workers.doDesktopSearch | 执行桌面搜索 | true |
| workers.doMobileSearch | 执行移动搜索 | true |
| workers.doDailyCheckIn | 完成每日签到 | true |
| workers.doReadToEarn | 完成阅读赚取活动 | true |
| ensureStreakProtection | 启用连击保护(账户级配置,新版 UI 走 Server Action) | true |
| 设置 | 描述 | 默认值 |
|---|---|---|
| searchOnBingLocalQueries | 使用本地查询 vs. 获取的查询 | false |
| searchSettings.scrollRandomResults | 随机滚动搜索结果 | true |
| searchSettings.clickRandomResults | 点击随机结果链接 | true |
| searchSettings.parallelSearching | 桌面端/移动端搜索并行执行 | false |
| searchSettings.queryEngines | 查询源及顺序(数组),决定从哪些源获取搜索词 | ['china', 'local'] |
| searchSettings.searchResultVisitTime | 访问搜索结果页的停留时间 | 10sec |
| searchSettings.searchDelay | 搜索之间的延迟(最小/最大) | 30sec - 1min |
| searchSettings.readDelay | 阅读赚取活动的阅读间隔(最小/最大) | 30sec - 1min |
| searchSettings.chinaApi.appkey | gmya.net appkey(填入解除免费档限流,留空走免费档) | ''(空) |
🌐 queryEngines 查询源说明(含国内可用性)📌 注:示例配置 config.example.json 里 searchDelay 为 6-12min、readDelay 为 6-11min、searchResultVisitTime 为 20sec,比 Validator 默认值更保守,适合长时间挂机场景。
searchSettings.queryEngines 决定从哪些源获取搜索词,按数组顺序尝试。可选值:
| 值 | 来源 | 国内可用性 |
|---|---|---|
| china | 中国热搜(gmya.net:百度/头条/抖音/微博/知乎) | ✅ 直连 |
| local | 本地查询词(search-queries.json,392 个标准词) | ✅ 离线 |
| Google Trends | ❌ 需代理(见 proxy.queryEngine) | |
| wikipedia | 维基百科热门 | ❌ 需代理 |
| Reddit 热门帖 | ❌ 需代理 |
国内推荐配置:["china", "local"](示例配置默认值),无需代理即可获取丰富搜索词。
当 queryEngines 包含 china 时,搜索词从中国热搜获取:
| 设置 | 描述 | 默认值 |
|---|---|---|
| globalTimeout | 操作超时持续时间 | 30sec |
| proxy.queryEngine | 代理查询引擎请求(google/wikipedia/reddit 等需翻墙的源;china 源走 gmya.net 国内直连,无需开) | false |
| consoleLogFilter | 控制台日志过滤(按级别/关键词/正则 白名单或黑名单) | 见下方说明 |
| webhook.webhookLogFilter | Webhook 推送日志过滤(结构同 consoleLogFilter) | 见下方说明 |
两个字段结构相同,用于过滤输出到控制台 / webhook 的日志:
{
"enabled": false,
"mode": "whitelist",
"levels": ["error", "warn"],
"keywords": ["starting account"],
"regexPatterns": []
}微软新版 dashboard(modern UI)改用 Next.js App Router,部分功能不再有对外 REST API,旧版 API(togglestreakasync、claimallpointsasync)在新版 UI 下因取不到 requestToken 会返回 400 Bad Request。
| 功能 | 调用方式 | 认证 |
|---|---|---|
| 连击保护 toggle | POST /dashboard + next-action hash + body [true] | Cookie |
| 领取积分 | POST /dashboard + next-action hash + body [] | Cookie |
版本守卫机制:next-action hash 在编译时生成、绑定到具体部署版本(dpl)。脚本启动时从 dashboard HTML 提取当前部署 ID,与脚本内置的支持版本(20260612-3)比对:
如果降级跳过频繁出现,说明微软更新了部署,需要重新更新 hash。
本项目支持三种推送渠道(均在 webhook 对象下,可同时开启多个):
| 设置 | 描述 | 默认值 |
|---|---|---|
| webhook.discord.enabled | 启用 Discord 推送 | false |
| webhook.discord.url | Discord webhook URL | "" |
| webhook.ntfy.enabled | 启用 ntfy 推送 | false |
| webhook.ntfy.url | ntfy 服务器 URL | "" |
| webhook.ntfy.topic | ntfy 主题 | "" |
| webhook.ntfy.token | ntfy 认证 token | "" |
| webhook.ntfy.priority | ntfy 优先级(1-5) | 3 |
| webhook.pushplus.enabled | 启用 PushPlus 推送(国内) | false |
| webhook.pushplus.token | PushPlus token | "" |
| webhook.pushplus.template | PushPlus 模板(txt/html/markdown) | txt |
💡 国内推荐:PushPlus(微信推送,无需翻墙)。Discord / ntfy 需要能访问对应服务。
Chromium 没装上,手动安装:
npx patchright install chromium首次运行时请手动完成网页登录一次,等待脚本自动接管剩余流程。登录后的 cookie 会保存到 sessions/ 目录,后续运行会自动复用。
⚠️ sessions/ 目录需要多备份,丢了就要重新登录。
Docker 改了配置为什么不生效?改完 compose.yaml 或代码后,必须加 --build 重建镜像:
docker compose up -d --build不加 --build 跑的是旧镜像。
国内查询词被限流(403)怎么办?免费档对连续请求有频率限制。解决方法:
到 gmya.net 申请 appkey,填入 searchSettings.chinaApi.appkey(Docker 用 CONFIG_CHINA_API_APPKEY 环境变量),即可解除限流。
修改 accounts.json / config.json 后怎么生效?不能。之前的版本与当前版本不兼容,必须重新基于 accounts.example.json / config.example.json 生成。
本项目 fork 自 TheNetsky/Microsoft-Rewards-Script,感谢原作者的付出。
本项目不定时同步原项目代码,主要内容为本地化处理:
若有侵权请联系删除。
本项目所有改动基于 Win11 系统和委托他人 Docker 环境测试。其他系统未测试,请根据原项目相关配置设置。
| 项目 | 信息 |
|---|---|
| 上游仓库 | TheNetsky/Microsoft-Rewards-Script |
| 当前版本 | 3.1.6.4 |
| 最后同步原项目 | 2026-06-15 |
| License | GPL-3.0-or-later |
风险自负! 使用自动化脚本时,您的 Microsoft Rewards 账户可能会被暂停或禁止。
此脚本仅供教育目的。作者对 Microsoft 采取的任何账户操作不承担责任。
| Back | FazBrowse Home | New Git URL |