diff --git a/miniprogram/package.json b/miniprogram/package.json index 2bee673..623e875 100644 --- a/miniprogram/package.json +++ b/miniprogram/package.json @@ -8,7 +8,8 @@ "dev:weapp": "npm run build:weapp -- --watch", "build:h5": "taro build --type h5", "dev:h5": "npm run build:h5 -- --watch", - "upload": "miniprogram-ci upload --pp . --pkp /Volumes/Pine/mycode/opc/private.wx349f46ac71770777.key --appid wx349f46ac71770777 --uv 0.0.1 --ud \"自动上传\"" + "upload": "miniprogram-ci upload --pp . --pkp /Volumes/Pine/mycode/opc/private.wx349f46ac71770777.key --appid wx349f46ac71770777 --uv 0.0.1 --ud \"PineBot 自动上传\"", + "set-experience": "node scripts/set-experience.js" }, "browserslist": [ "last 3 versions", diff --git a/miniprogram/scripts/set-experience.js b/miniprogram/scripts/set-experience.js new file mode 100644 index 0000000..afccd58 --- /dev/null +++ b/miniprogram/scripts/set-experience.js @@ -0,0 +1,61 @@ +/** + * 将最新上传的开发版设为体验版 + * 用法:WX_APPSECRET=你的AppSecret node scripts/set-experience.js + * 或在 package.json 里配置后:npm run set-experience + */ +const https = require('https'); + +const APPID = 'wx349f46ac71770777'; +const APPSECRET = process.env.WX_APPSECRET; + +if (!APPSECRET) { + console.error('错误:请设置环境变量 WX_APPSECRET(微信公众平台 -> 开发 -> 开发管理 -> 开发设置 -> AppSecret)'); + process.exit(1); +} + +function request(method, path, body) { + return new Promise((resolve, reject) => { + const data = body ? JSON.stringify(body) : null; + const req = https.request({ + hostname: 'api.weixin.qq.com', + path, + method, + headers: data ? { 'Content-Type': 'application/json', 'Content-Length': Buffer.byteLength(data) } : {}, + }, (res) => { + let raw = ''; + res.on('data', (c) => (raw += c)); + res.on('end', () => { + try { resolve(JSON.parse(raw)); } catch { resolve(raw); } + }); + }); + req.on('error', reject); + if (data) req.write(data); + req.end(); + }); +} + +(async () => { + try { + // 1. 获取 access_token + const tokenRes = await request('GET', `/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${APPSECRET}`); + if (!tokenRes.access_token) { + console.error('获取 access_token 失败:', JSON.stringify(tokenRes)); + process.exit(1); + } + console.log('access_token 获取成功'); + + // 2. 设为体验版 + const result = await request('POST', `/wxa/version_control/release?access_token=${tokenRes.access_token}`, { + action: 'set_experience', + }); + console.log('设置体验版结果:', JSON.stringify(result)); + if (result.errcode === 0) { + console.log('✓ 已成功设为体验版'); + } else { + console.log('提示:若 errcode 表示接口不支持,请在微信公众平台 -> 管理 -> 版本管理 -> 开发版本 中手动点击「选为体验版」'); + } + } catch (e) { + console.error('执行失败:', e.message); + process.exit(1); + } +})();