Files
training/miniprogram/scripts/set-experience.js
T

62 lines
2.0 KiB
JavaScript
Raw Normal View History

/**
* 将最新上传的开发版设为体验版
* 用法: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);
}
})();