《贵州电化学储能产业发展报告》发布:储能面临“三大机遇”
7月7日,在2023年生态文明贵阳国际论坛“新型储能产业发展国际论坛暨绿
大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
以下是『微信小程序生态系列文章』正文!
(相关资料图)
需求背景我们是一个提供SaaS服务的小程序服务商,会给每一个客户申请一个专属的小程序,到目前为止已经差不多有30几个了。由于『微信开放平台』没有用起来,导致我们每次升级版本都很痛苦,一次性要发布30几个小程序。每个小程序都需要如下流程:
每个小程序的审核都需要这样操作,实在是太繁琐了而且效率非常低下,但由于作为一个程序员,只有小程序的开发权限,所以我只能尽量减少人工操作的环节,用脚本替代。目前的脚本可以做到将指定代码上传到指定小程序的微信公众平台中,送审->发布的步骤需要借助小程序助手完成。
实现说明准备材料微信开发者工具,核心原理就是使用微信的cli工具来自动操作工具进行代码提交;
node环境,我将用js代码来实现这个脚本,要用到node来运行;
微信开发者cli指令帮助文档;
实现步骤第一步、打开微信开发者工具—>设置 -> 安全设置中开启服务端口第二步、核心执行脚本upload.js代码内容如下:
//依赖包,执行cmd命令const cp = require("child_process");//依赖包,修改文件内容const fs = require("fs");//获取微信开发者工具的cli指令(Mac)const cli = "/Applications/wechatwebdevtools.app/Contents/MacOS/cli";//获取微信开发者工具的cli指令(Windows)//const cli = "开发工具安装位置/cli.bat";//当前小程序项目地址(替换成自己的)const projectDir = "/xxx/xxx/xxx/";//定义当前版本号const VERSION = "1.2.9";//定义当前版本代码的说明const UPDATE_MESSAGE = "活动";//定义当前需要上传多少小程序const list = [{ appId: "appId1", appName: "小程序名称1",}, { appId: "appId2", appName: "小程序名称2",}];//窗口执行命令工具方法function exec(cmdStr) { return new Promise((resolve, reject) => { cp.exec(cmdStr, function (err, stdout, stderr) { console.log(err, stdout, stderr); if (err) { reject(err); } else { resolve(stdout); } }); });}//更新project.config.json文件中的appId方法function updateAppId(appId) { return new Promise((resolve, reject) => { try { const projectPath = `${projectDir}project.config.json`; let data = fs.readFileSync(projectPath, "utf8"); let jsonData = JSON.parse(data); jsonData.setting.appid = appId; jsonData.appid = appId; fs.writeFileSync(projectPath, JSON.stringify(jsonData, "", 2)); console.log(jsonData); resolve(); } catch (e) { reject(e); console.error("json error", e); } });}//主方法,for循环执行上传操作async function main() { console.log("准备工作、检查是否已经登录工具") const result1 = await exec(`${cli} islogin`) console.log(result1) console.log("准备工作、打开指定项目") const result2 = await exec(`${cli} open --project ${projectDir}`) console.log(result2) for (let index = 0; index < list.length; index++) { const item = list[index]; console.log(`开始执行小程序:${item.appId}的代码upload操作`) console.log("第一步、自动预览") const result3 = await exec(`${cli} auto-preview --project ${projectDir}`) console.log(result3) console.log("第二步、更新project.config.json文件中的appId") const result4 = await updateAppId(item.appId); console.log(result4) console.log("第三步、上传代码审核") const result5 = await exec(`${cli} upload --project ${projectDir} -v ${VERSION} -d ${UPDATE_MESSAGE}`); console.log(result5) console.log(`执行小程序:${item.appId}的代码upload操作结束!`) } console.log("上传结束、关闭开发者工具") const result6 = await exec(`${cli} quit`); console.log(result6)}//执行命令main();
第三步、执行命令该脚本的核心逻辑是使用cli命令控制微信开发者工具,遍历每一个需要送审的小程序,将指定目录下的代码提交到指定的小程序公众平台中,并将该版本变为开发版。
node "upload.js"
执行结果
第四步、开发版代码已提交(PC端可查看)(微信小程序助手可查看)
这个1.2.9版本就是我测试提交的,可以看到代码已经提交好了。
第五步、小程序助手提交小程序审核小程序助手也是一个微信小程序,直接搜索就行了
点击进入小程序助手
点击刚才上传的版本后,可以直接提交审核
关于审核的结果,只需要关注一下『微信公众平台』,结果会自动推送
总结一下其实微信开放平台是一个不错的工具,可惜我们前期没有用好,导致大量的小程序没有绑定上去,后面想绑定已经找不到小程序的管理员了。通过脚本的方法也不止这一种,微信公众平台提供了一个小程序的key文件,可以通过这个key文件调用一些接口,也可以实现批量送审。不过还是刚才那个原因,这个key的获取需要小程序管理员扫码,已经联系不到了。上面的这种办法虽说还是要人肉操作小程序助手,但代码的提交已经可以自动化了,如果后面小程序助手开放出一些接口的话,不妨利用一下,也可以减少不少时间。
关键词:
7月7日,在2023年生态文明贵阳国际论坛“新型储能产业发展国际论坛暨绿
广东、福建、海南这三个地方同属于我国东南沿海地区,也是我国最早进行
夏天别穿太花!“香槟色”高级又大气,穿对了真显白!,配色,香槟色,连
国内“6 18”购物狂欢节刚刚落幕,法国夏季打折季也火热来袭!今年
7月7日,银之杰(300085)融资买入786 38万元,融资偿还939 55万元,融
1、芋头营养丰富,含有大量的淀粉、矿物质及维生素,既是蔬菜,又是粮
今天小红来为大家带来的是故事的小黄瓜,小黄瓜导航,让我们一起往下看
7月10日,人民币对美元中间价调升128个基点,报,上一交易日中间价。(
2023年7月7日光线传媒融资净偿还1001 3万元,融资余额3 97亿元
戴上VR设备,穿越1300年历史,重返“神都”洛阳,展开冒险之旅。自4月
先去注册账号,在去实名认证,才能开始玩游戏。直接进入到您的这个九游
港股投资日志|2023年7月10日
您是否在售楼部经常听到置业顾问向您介绍,“这是我们小区的楼王所以价
中国山东网-感知山东7月9日讯(记者张元元)7月8日下午,“文旅巴士畅
长达两千年的时间里,犹太人始终是一个四处流浪的民族,正因没有自己的
广平县气象台2023年07月09日17时16分继续发布高温橙色预警信号:预计明
投资者对公司的主要担忧或许在于近年来公司业绩中体现出的“增收不增利
人民网北京7月9日电(欧阳易佳)据水利部消息,7月6日至8日,西南中东
事实上,这一消息并非谣言,乐山大佛真的被卖了,而且都已经被卖掉好几
作为数字化计量设备,智能水表可实现远程数据传输,通过数据的拓展应用
万份收益就是指基金公司通常每日公布当日每万份基金单位实现的收益金额
1 长安新悦翔,是一款汽车品牌新兴的纯电动SUV车型。2 该车的顶部采用
驾校教练是懂说话之道的!你的教练啥样?---高考结束,志愿填完,传说
秋粮丰产,夏管是关键。眼下,各地正抢抓农时,抓好秋粮作物田间管理,
【夫妻高速上被黑熊撞翻车致脑震荡】近日,黑龙江绥化,赵先生携妻子驾