Node.js を使用して WeChat パブリック アカウント バックエンド サービスを構築する方法の詳細な説明
1. はじめに
現在、WeChat は多くの企業や個人にとってセルフメディアを運営するための重要なチャネルとなっており、WeChat パブリック アカウント用の効率的で安定したバックエンド サービスの構築が必要不可欠になっています。 Node.js は、軽量で効率的なバックエンド言語として、その強力な非同期 IO 機能と開発効率により広く注目を集めています。この記事では、Node.jsを使用してWeChat公式アカウントのバックエンドサービスを構築する方法を簡単かつ詳細に紹介します。
2. 準備
開始する前に、次のツールと環境を準備する必要があります:
- Node.js: Node.js 公式 Web サイトにアクセスしてください。ダウンロードしてインストールするには;
- WeChat パブリック アカウント: WeChat パブリック プラットフォームにアクセスして登録し、開発者権限を申請してください;
- ファイル エディター: Visual Studio Code をお勧めします。
3. WeChat パブリック アカウント バックグラウンド サービスの構築
- プロジェクトの作成
まず、プロジェクトを保存するフォルダーを作成します。次に、コマンド ラインでフォルダーを入力し、次のコマンドを実行します。
npm init
実行後、プロンプトに従ってプロジェクト名、バージョン、説明、その他の情報を入力し、プロジェクトの初期化を完了します。
- 依存関係のインストール
次のコマンドを実行して、必要な依存関係をインストールします。
npm install express request xml2js
このうち、express は Node.js で開発された Web フレームワークです。 、request HTTPリクエストをカプセル化するライブラリで、xml2jsはXMLをJSONデータに変換するライブラリです。
- ルーティングの構成
プロジェクトのルート ディレクトリに、index.js という名前のファイルを作成し、次の内容をそのファイルに追加します。上記のコードはWeChatパブリックアカウントのアクセス認証を実装しています。具体的な実装方法については、公式Webサイトのドキュメントを参照してください。
WeChat メッセージの処理- プロジェクトのルート ディレクトリに、WeChat メッセージを処理するための message.js という名前のファイルを作成します。次の内容をファイルに追加します。
const express = require('express'); const request = require('request'); const { parseString } = require('xml2js'); const app = express(); app.get('/api/wechat', (req, res) => { const { signature, timestamp, nonce, echostr } = req.query; // 排序和拼接字符串 const str = [process.env.TOKEN, timestamp, nonce].sort().join(''); const sha1 = require('crypto').createHash('sha1'); sha1.update(str); const code = sha1.digest('hex'); if (code === signature) { return res.send(echostr); // 校验成功,原样返回 echostr 参数内容 } res.send(); // 校验失败,返回空响应 });
上記のコードは、WeChat 公式アカウントからのメッセージを解析し、処理後に対応する応答メッセージを返します。
サービスの開始- index.js に次のコードを追加してサービスを開始します:
/** * 解析 XML 数据 * @param {string} xmlStr XML 字符串 */ function parseXML(xmlStr) { const options = { explicitArray: false, // 不将子元素变为数组 ignoreAttrs: true, // 忽略属性 }; return new Promise((resolve, reject) => { parseString(xmlStr, options, (err, result) => { if (err) { return reject(err); } resolve(result.xml); }); }); } module.exports = function handleWechatMessage(req, res) { let body = ''; req.on('data', (chunk) => { body += chunk; }); req.on('end', async () => { const { ToUserName, FromUserName, CreateTime, MsgType, Event, Content, EventKey, } = await parseXML(body); let replyXML; switch (MsgType) { case 'text': // 处理文本消息 replyXML = `<xml> <ToUserName><![CDATA[${FromUserName}]]></ToUserName> <FromUserName><![CDATA[${ToUserName}]]></FromUserName> <CreateTime>${Math.floor(Date.now() / 1000)}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[${Content}]]></Content> </xml>`; break; case 'event': // 处理事件消息 if (Event === 'subscribe') { // 处理关注事件 replyXML = `<xml> <ToUserName><![CDATA[${FromUserName}]]></ToUserName> <FromUserName><![CDATA[${ToUserName}]]></FromUserName> <CreateTime>${Math.floor(Date.now() / 1000)}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[欢迎关注]]></Content> </xml>`; } else if (Event === 'unsubscribe') { // 处理取消关注事件 console.log('用户取消关注'); } else if (Event === 'CLICK' && EventKey === 'test') { // 处理菜单点击事件 replyXML = `<xml> <ToUserName><![CDATA[${FromUserName}]]></ToUserName> <FromUserName><![CDATA[${ToUserName}]]></FromUserName> <CreateTime>${Math.floor(Date.now() / 1000)}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[点击了测试菜单]]></Content> </xml>`; } break; default: break; } if (replyXML) { res.setHeader('Content-Type', 'application/xml'); return res.send(replyXML); } res.send(); }); };
- サービス開始後、WeChat公式アカウントのバックグラウンドでサーバーアドレスを設定することで検証できます。検証が成功すると、このアドレスを WeChat 公式アカウントのバックエンド サービス アドレスとして使用できます。同時に、コードをデバッグして、メッセージが正常に配信および応答できることを確認できます。
4. 概要
この記事では、Node.js を使用して WeChat パブリック アカウント バックエンド サービスを構築する方法を紹介し、アクセス検証とメッセージ処理の 2 つの側面をカバーします。この記事を通じて、読者は Node.js を使用して WeChat バックエンド サービスを構築する基本原則と実装方法をすぐに理解し、習得できると思います。
以上がNode.js を使用して WeChat パブリック アカウント バックエンド サービスを構築する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JavaScript文字列置換法とFAQの詳細な説明 この記事では、javaScriptの文字列文字を置き換える2つの方法について説明します:内部JavaScriptコードとWebページの内部HTML。 JavaScriptコード内の文字列を交換します 最も直接的な方法は、置換()メソッドを使用することです。 str = str.replace( "find"、 "置換"); この方法は、最初の一致のみを置き換えます。すべての一致を置き換えるには、正規表現を使用して、グローバルフラグGを追加します。 str = str.replace(/fi

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、スクリプトのパフォーマンスを大幅に向上させるための10の簡単な手順の概要を説明します。 これらの手法は簡単で、すべてのスキルレベルに適用できます。 更新の維持:NPMのようなパッケージマネージャーを使用して、Viteなどのバンドラーを使用して確認してください

Sequelizeは、約束ベースのnode.js ormです。 PostgreSQL、MySQL、MariadB、SQLite、およびMSSQLで使用できます。このチュートリアルでは、Webアプリのユーザー向けに認証を実装します。また、人気のある認証ミドルであるPassportを使用します

この記事では、jQueryライブラリを使用してシンプルな画像カルーセルを作成するように導きます。 jQuery上に構築されたBXSLiderライブラリを使用し、カルーセルをセットアップするために多くの構成オプションを提供します。 今日、絵のカルーセルはウェブサイトで必須の機能になっています - 1つの写真は千の言葉よりも優れています! 画像カルーセルを使用することを決定した後、次の質問はそれを作成する方法です。まず、高品質の高解像度の写真を収集する必要があります。 次に、HTMLとJavaScriptコードを使用して画像カルーセルを作成する必要があります。ウェブ上には、さまざまな方法でカルーセルを作成するのに役立つ多くのライブラリがあります。オープンソースBXSLiderライブラリを使用します。 BXSLiderライブラリはレスポンシブデザインをサポートしているため、このライブラリで構築されたカルーセルは任意のものに適合させることができます
