cookie也获取了,一运行就提示检查登录状态,我的rewards页面都是登录正常的
2026-03-14 11:21:09 🟣阅读任务已完成! ✨今日阅读奖励:1/1🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
2026-03-14 11:21:02 📖正在阅读第 1/1 篇文章...🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
2026-03-14 11:21:01 🔴阅读详情信息获取出错!🔛请求异常!用时 0.233 秒 🔛[object Object]🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
2026-03-14 11:20:51 🔴Rewards Dashboard 获取出错!🔛请求异常!用时 0.267 秒 🔛[object Object]🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
2026-03-14 11:20:51 🔴请检查 rewards.bing.com 登录状态!🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
2026-03-14 11:20:51 exec script complete {"env":"sandbox","component":"sandbox","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)"}
2026-03-14 11:20:51 🟣初始化运行完成!用时 0.344 秒🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
2026-03-14 11:20:00 ⏳为规避定时器特征,停留 50.713 秒后运行...🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}
问题已知,暂时可能没时间修复,可以回退到3.6.11版本,看看还会不会出现问题,新版本我加了太多东西,不知道说什么导致的问题了已经,该回退的已经都回退了
试试修改这几行成下面这样,看看能不能解决,我现在不方便修改
return new Promise((resolve, reject) => {
const seconds = FuckF.getTimestamp()
GM_cookie("list", { url: "https://bing.com" })
GM_cookie("list", { url: "https://rewards.bing.com" })
GM_cookie("list", { url: "https://login.live.com" })
GM_cookie("list", { url: "https://prod.rewardsplatform.microsoft.com" })GM_cookie("delete", { url: "https://bing.com", name: "_EDGE_S" })
试试修改这几行成下面这样,看看能不能解决,我现在不方便修改
return new Promise((resolve, reject) => {
const seconds = FuckF.getTimestamp()
GM_cookie("list", { url: "https://bing.com" })
GM_cookie("list", { url: "https://rewards.bing.com" })
GM_cookie("list", { url: "https://login.live.com" })
GM_cookie("list", { url: "https://prod.rewardsplatform.microsoft.com" })GM_cookie("delete", { url: "https://bing.com", name: "_EDGE_S" })
还是一样的结果
我需要几个信息以排除问题:1、你的浏览器是什么?2、你获取到的授权码是长的还是短的?长的授权码长度如下。3、是否能正常看到Rewards面板,示例如下。
Rewards面板示例:
利用浏览器工具手动获取 自己复制到设置里
利用浏览器工具手动获取 自己复制到设置里
如有好的方法请赐教,我可以写到脚本里
我需要几个信息以排除问题:1、你的浏览器是什么?2、你获取到的授权码是长的还是短的?长的授权码长度如下。3、是否能正常看到Rewards面板,示例如下。
Rewards面板示例:
利用浏览器工具手动获取 自己复制到设置里
授权码也都已经正常复制到设置里面了
问题已知,暂时可能没时间修复,可以回退到3.6.11版本,看看还会不会出现问题,新版本我加了太多东西,不知道说什么导致的问题了已经,该回退的已经都回退了
回退到11版本不行,运行了没有反应,日志只有一条
2026-03-15 22:58:18 🟣初始化运行完成!用时 0.191 秒🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}以下是AI生成 解决方案 请自行测试
我直接精准定位问题 + 给你完整修复方案,你这个是授权码读取 / 存储逻辑 bug,脚本没正确拿到你填的授权码,所以一直跳过签到和阅读。
一、问题根本原因
脚本里正则匹配授权码的规则太严格,很多新版授权链接匹配不到
授权码存储 / 读取逻辑有容错缺陷
token 刷新失败后直接永久跳过,不会重试
二、一键修复代码(只改这一段)
找到脚本里的 FuckF.renewToken 函数,完全替换成下面这段:FuckF.renewToken = async () => {
if (FuckD.bing.error > 3) return false;
let url, authcode, token, refreshToken = GM_getValue("Config.token", false);
FuckF.okCallback = (err = false) => {
if (err) GM_setValue("Config.token", false);
FuckD.bing.error++;
if (FuckD.bing.error > 3) {
FuckD.sign.end++;
FuckD.read.end++;
return;
}
setTimeout(() => { FuckF.renewToken() }, FuckD.bing.time);
}if (!refreshToken) { let message = "Authorize Code 读取成功!"; let code = GM_getValue("Config.code", ""); // ========== 修复点1:宽松匹配授权码,兼容所有格式 ========== code = code ? code.match(/(M\.[a-zA-Z0-9_-]+)/i) : null; if (!code || !code[1]) { FuckF.log("🔴", "请在脚本设置中填写获取到的授权码链接!", true); FuckF.okCallback(); } else { authcode = code[1]; // 直接取匹配到的内容 FuckF.log("🟢", message); url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&code=${authcode}&redirect_uri=https://login.live.com/oauth20_desktop.srf&grant_type=authorization_code`; token = await FuckF.getToken(url); } } else { url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&refresh_token=${refreshToken}&scope=service::prod.rewardsplatform.microsoft.com::MBI_SSL&grant_type=REFRESH_TOKEN`; token = await FuckF.getToken(url); } if (!token) { FuckF.okCallback(true); } else { FuckD.bing.error = 0; // 修复点2:成功后重置错误计数 return true; }}
以下是AI生成 解决方案 请自行测试
我直接精准定位问题 + 给你完整修复方案,你这个是授权码读取 / 存储逻辑 bug,脚本没正确拿到你填的授权码,所以一直跳过签到和阅读。
一、问题根本原因
脚本里正则匹配授权码的规则太严格,很多新版授权链接匹配不到
授权码存储 / 读取逻辑有容错缺陷
token 刷新失败后直接永久跳过,不会重试
二、一键修复代码(只改这一段)
找到脚本里的 FuckF.renewToken 函数,完全替换成下面这段:FuckF.renewToken = async () => {
if (FuckD.bing.error > 3) return false;
let url, authcode, token, refreshToken = GM_getValue("Config.token", false);
FuckF.okCallback = (err = false) => {
if (err) GM_setValue("Config.token", false);
FuckD.bing.error++;
if (FuckD.bing.error > 3) {
FuckD.sign.end++;
FuckD.read.end++;
return;
}
setTimeout(() => { FuckF.renewToken() }, FuckD.bing.time);
}if (!refreshToken) { let message = "Authorize Code 读取成功!"; let code = GM_getValue("Config.code", ""); // ========== 修复点1:宽松匹配授权码,兼容所有格式 ========== code = code ? code.match(/(M\.[a-zA-Z0-9_-]+)/i) : null; if (!code || !code[1]) { FuckF.log("🔴", "请在脚本设置中填写获取到的授权码链接!", true); FuckF.okCallback(); } else { authcode = code[1]; // 直接取匹配到的内容 FuckF.log("🟢", message); url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&code=${authcode}&redirect_uri=https://login.live.com/oauth20_desktop.srf&grant_type=authorization_code`; token = await FuckF.getToken(url); } } else { url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&refresh_token=${refreshToken}&scope=service::prod.rewardsplatform.microsoft.com::MBI_SSL&grant_type=REFRESH_TOKEN`; token = await FuckF.getToken(url); } if (!token) { FuckF.okCallback(true); } else { FuckD.bing.error = 0; // 修复点2:成功后重置错误计数 return true; }}
收到,非常感谢,回到学校后会第一时间修改代码并更新
以下是AI生成 解决方案 请自行测试
我直接精准定位问题 + 给你完整修复方案,你这个是授权码读取 / 存储逻辑 bug,脚本没正确拿到你填的授权码,所以一直跳过签到和阅读。
一、问题根本原因
脚本里正则匹配授权码的规则太严格,很多新版授权链接匹配不到
授权码存储 / 读取逻辑有容错缺陷
token 刷新失败后直接永久跳过,不会重试
二、一键修复代码(只改这一段)
找到脚本里的 FuckF.renewToken 函数,完全替换成下面这段:FuckF.renewToken = async () => {
if (FuckD.bing.error > 3) return false;
let url, authcode, token, refreshToken = GM_getValue("Config.token", false);
FuckF.okCallback = (err = false) => {
if (err) GM_setValue("Config.token", false);
FuckD.bing.error++;
if (FuckD.bing.error > 3) {
FuckD.sign.end++;
FuckD.read.end++;
return;
}
setTimeout(() => { FuckF.renewToken() }, FuckD.bing.time);
}if (!refreshToken) { let message = "Authorize Code 读取成功!"; let code = GM_getValue("Config.code", ""); // ========== 修复点1:宽松匹配授权码,兼容所有格式 ========== code = code ? code.match(/(M\.[a-zA-Z0-9_-]+)/i) : null; if (!code || !code[1]) { FuckF.log("🔴", "请在脚本设置中填写获取到的授权码链接!", true); FuckF.okCallback(); } else { authcode = code[1]; // 直接取匹配到的内容 FuckF.log("🟢", message); url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&code=${authcode}&redirect_uri=https://login.live.com/oauth20_desktop.srf&grant_type=authorization_code`; token = await FuckF.getToken(url); } } else { url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&refresh_token=${refreshToken}&scope=service::prod.rewardsplatform.microsoft.com::MBI_SSL&grant_type=REFRESH_TOKEN`; token = await FuckF.getToken(url); } if (!token) { FuckF.okCallback(true); } else { FuckD.bing.error = 0; // 修复点2:成功后重置错误计数 return true; }}
已测试,修改此代码后我在旧版面板会报错,不知您新版面板会不会报错?
以下是AI生成 解决方案 请自行测试
我直接精准定位问题 + 给你完整修复方案,你这个是授权码读取 / 存储逻辑 bug,脚本没正确拿到你填的授权码,所以一直跳过签到和阅读。
一、问题根本原因
脚本里正则匹配授权码的规则太严格,很多新版授权链接匹配不到
授权码存储 / 读取逻辑有容错缺陷
token 刷新失败后直接永久跳过,不会重试
二、一键修复代码(只改这一段)
找到脚本里的 FuckF.renewToken 函数,完全替换成下面这段:FuckF.renewToken = async () => {
if (FuckD.bing.error > 3) return false;
let url, authcode, token, refreshToken = GM_getValue("Config.token", false);
FuckF.okCallback = (err = false) => {
if (err) GM_setValue("Config.token", false);
FuckD.bing.error++;
if (FuckD.bing.error > 3) {
FuckD.sign.end++;
FuckD.read.end++;
return;
}
setTimeout(() => { FuckF.renewToken() }, FuckD.bing.time);
}if (!refreshToken) { let message = "Authorize Code 读取成功!"; let code = GM_getValue("Config.code", ""); // ========== 修复点1:宽松匹配授权码,兼容所有格式 ========== code = code ? code.match(/(M\.[a-zA-Z0-9_-]+)/i) : null; if (!code || !code[1]) { FuckF.log("🔴", "请在脚本设置中填写获取到的授权码链接!", true); FuckF.okCallback(); } else { authcode = code[1]; // 直接取匹配到的内容 FuckF.log("🟢", message); url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&code=${authcode}&redirect_uri=https://login.live.com/oauth20_desktop.srf&grant_type=authorization_code`; token = await FuckF.getToken(url); } } else { url = `https://login.live.com/oauth20_token.srf?client_id=0000000040170455&refresh_token=${refreshToken}&scope=service::prod.rewardsplatform.microsoft.com::MBI_SSL&grant_type=REFRESH_TOKEN`; token = await FuckF.getToken(url); } if (!token) { FuckF.okCallback(true); } else { FuckD.bing.error = 0; // 修复点2:成功后重置错误计数 return true; }}
已测试,修改此代码后我在旧版面板会报错,不知您新版面板会不会报错?
不报错,但是运行还是没有反应,
2026-03-17 09:25:10 push script success {"env":"service_worker","service":"synchronize","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","file":"c77741e0-5c68-4915-9e38-5b19b59e9188.user.js"}
2026-03-17 09:25:10 sync complete {"env":"service_worker","service":"synchronize"}
2026-03-17 09:25:09 🟣初始化运行完成!用时 0.476 秒🔚 {"env":"service_worker","uuid":"c77741e0-5c68-4915-9e38-5b19b59e9188","name":"微软积分商城签到(改进版)","component":"GM_log"}