WeChat ミニ プログラム エコロジー 15 - WeChat ミニ プログラムを一括して審査のために提出する方法

記事ナビゲーション

WeChat ミニ プログラム エコロジー 1 - ミニ プログラムについて知る
WeChat ミニ プログラム エコロジー 2 - WeChat ミニ プログラムの作成
WeChat ミニ プログラム エコロジー 3 - WeChat ミニ プログラムのログイン プロセスの設計
WeChat ミニ プログラム エコロジー 4 - 通常の QR コードをスキャンしてミニ プログラムに入るミニ プログラムへのリンク
WeChat ミニ プログラム エコロジー 5 - WeChat 公式アカウント QR コードをスキャンして PC 側 Web ページにログイン
WeChat ミニ プログラム エコロジー 6 - WeChat 公式アカウント認証ログイン (H5 ミニ プログラムに適用)
WeChat ミニ プログラムエコロジー 7-WeChat 公式アカウントの IP ホワイトリスト設定
WeChat ミニプログラム エコロジー 8- WeChat パブリック アカウントの受動的応答メッセージを実現するための weixin-java-mp に基づく WeChat
ミニプログラム エコロジー 9- WeChat オープン プラットフォーム UnionId メカニズムの導入
WeChat ミニプログラム エコロジー 10 - WeChatパブリックアカウントトークン検証失敗
WeChatミニプログラムエコロジー 11-one QRコードはWeChat、DingTalk、Alipayを同時にサポート コードをスキャンしてアプレットを開く WeChat
アプレットエコロジー 12-WeChatアプレット開発設定のサーバードメイン名とビジネスドメイン名
WeChat アプレット エコロジー 13 - WeChat パブリック アカウントのカスタム メニュー、パーソナライズされたメニュー構成
WeChat ミニ プログラム エコロジー 14 - リリースされたミニ プログラムのリリース
WeChat ミニ プログラム エコロジー 15 - レビューのために WeChat ミニ プログラムをバッチで送信する方法

こんにちは、みんな!私は、第一線の低レベル コード ファーマーの Sum Mo です。普段は、技術的な問題について勉強したり考えたりして、記事にまとめるのが好きです。私のレベルには限界があります。記事内に不適切な表現があった場合は、とコード、お気軽に教えてください。

以下は「WeChatミニプログラムエコロジーシリーズ記事」の本文です!

需要の背景

弊社はSaaSサービスを提供する小規模プログラムサービスプロバイダーで、お客様ごとに専用の小規模プログラムをお申込みいただき、現在30件近くのプログラムがございます。「WeChatオープンプラットフォーム」を利用していないため、毎回バージョンアップするのは非常に大変で、小さなプログラムを一度に30個以上リリースしなければなりません。
各アプレットには次のプロセスが必要です。

このように小さなプログラムごとにレビューを行う必要があり、非常に面倒で非効率なのですが、プログラマーとしては小さなプログラムの開発権限しかないので、手作業を最小限にしてスクリプトに置き換えるしかありません。
現在のスクリプトは、指定されたコードを指定されたアプレットの WeChat パブリック プラットフォームにアップロードできます。レビューのために送信してリリースする手順は、アプレット アシスタントの助けを借りて完了する必要があります。

実装メモ

材料を準備する

  • WeChat 開発者ツールの基本原則は、WeChat cli ツールを使用して、コード送信用のツールを自動的に操作することです。

  • ノード環境では、js コードを使用してこのスクリプトを実装し、ノードを使用して実行します。

  • WeChat 開発者 CLI 手順のヘルプ ドキュメント。

実装手順

最初のステップは、WeChat 開発者ツール -> 設定 -> セキュリティ設定を開き、サービス ポートを開くことです。

2 番目のステップ、コア実行スクリプト、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 コマンドを使用して WeChat 開発者ツールを制御し、レビューのために送信する必要がある各アプレットをスキャンし、指定されたディレクトリ内のコードをアプレットの指定されたパブリック プラットフォームに送信し、このバージョンを有効にすることです。開発版に移行します。

3 番目のステップでは、コマンドを実行します。

node 'upload.js'

の結果

4 番目のステップ、開発バージョンのコードが送信されました

(PC側で閲覧可能)

(WeChatアプレットアシスタントで閲覧可能)

この1.2.9バージョンは私がテストして提出したもので、コードが提出されていることがわかります。

ステップ 5: ミニ プログラム アシスタントがレビューのためにミニ プログラムを送信します。

ミニ プログラム アシスタントも WeChat ミニ プログラムです。直接検索するだけです。

クリックしてアプレットアシスタントに入ります

アップロードしたばかりのバージョンをクリックすると、レビューのために直接送信できます

監査の結果については、「WeChatパブリックプラットフォーム」に注意するだけで、結果は自動的にプッシュされます。

結論は

実際、WeChat オープン プラットフォームは優れたツールですが、残念ながら初期段階ではそれをうまく活用できず、その結果、多数の小規模プログラムがそれに拘束されず、小規模プログラムの管理者が見つからなくなりました。後でバインドしたい場合。スクリプトの使用方法は複数あり、WeChat パブリック プラットフォームでは小さなプログラムのキー ファイルが提供されており、これを通じていくつかのインターフェイスを呼び出すことができ、バッチ送信も実現できます。しかし、やはり先ほどの理由があり、このキーを取得するにはアプレットの管理者がコードをスキャンする必要があり、連絡が取れなくなりました。
上記の方法でもアプレット アシスタントを操作するには人間が必要ですが、コードの送信はすでに自動化されているため、後でアプレット アシスタントがいくつかのインターフェイスを開く場合は、それを利用することもでき、時間を大幅に節約することもできます。

おすすめ

転載: blog.csdn.net/weixin_33005117/article/details/131639107