概要:
WeChat は、その巨大なユーザー ベースとユーザーの強い粘着力により、過去 2 年間で数え切れないほどの開発者の注目を集めてきました。過去 2 年間で非常に急速に開発された開発ツールである Nodejs は、モバイル バックエンドの構築に特に適しています。この記事では、著者が開発した例を使用して、Nodejs に基づいて独自の WeChat パブリック アカウントを開発する方法を説明します。この例では、Express、wechat、mongodb、monk などのモジュールが主に使用されています。
早めの準備:
1. WeChat 公開アカウントを申請するには、https://mp.weixin.qq.com/ にアクセスして申請します。ここでは詳しく説明しません。
2. サーバーの購入には、Amazon の EC2 がおすすめです。1 年間無料で利用できます。クレジット カード情報を入力するだけで済みます。すべてのプロセスは英語のみです。最初の 1 年間は無料なので、もっと時間を費やす価値があります。
NodeJs 開発環境をインストールします:
導入例:
著者のクラスはサッカーチームを作り、全員がキャプテンにお金を渡し、キャプテンが各料金を支払い、各人の料金と残高を記録し、全員に通知しました。毎回全員が来られるわけではないし、費用もAAベースで参加者間で平等に負担するしかないので、記録するのが面倒。そこで、WeChatのパブリックアカウントを作成しました。毎回、アクティビティの消費量を入力し、参加者の数を選択するだけで、1人あたりの費用と残高が自動的に生成され、その後、詳細がWeChatグループに送信されます。誰もがそれを見ることができるように。
この例では、作成者が実際にマイクロサイトを構築し、Web ページを通じて活動費用と残高を記録または表示します。 WeChat パブリック アカウントは、ユーザーの WeChat とマイクロ Web サイトの間にブリッジを構築することに相当します。WeChat ユーザーが作成者のパブリック アカウントをフォローすると、WeChat パブリック プラットフォーム開発者モードが自動的に WeChat ユーザーに助けを求めることができます。ヘルプには、操作に対応する Web リンクがあり、クリックするだけで対応するページにアクセスできます。
WeChat パブリック アカウント バックエンド サービスを構築する:
すべての準備が整いました。あとは開発するだけです:)
始める前に、Express モジュールと Wechat モジュールを簡単に紹介しましょう:
Express - 優れた Web 開発フレームワークです。Express を使用すると、独自の Web サイトを非常に迅速に構築できます。 WeChat サーバーは HTTP Post リクエストを通じて開発者サーバーと対話するため、Express フレームワークを使用する必要があります。
以下は新規ユーザーがフォローした際のログです。103.7.30.84はWeChatサーバーのIPアドレスです。
まず、express をインストールし、express を使用してプロジェクトを作成する必要があります:
インストール後のディレクトリ構成は以下のとおりです。
URL とトークンを構成します。例は次のとおりです:
WeChat サーバーのアクセス認証と自動応答:
app.js を変更します。対応するコードは次のとおりです:
app.use('/users', users);
app.use('/weixin', weixin);
app.use(express.query()); // または app.use(express.query());
app.use('/wechat', wechat('hchismylove', function (req, res, next) {
// WeChat の入力情報はすべて req.weixin
にあります
var message = req.weixin;
console.log(メッセージ);
if((message.MsgType == 'event') && (message.Event == 'subscribe'))
{
var raiseStr = "1. クリックしてチームのリチャージを記録します"
var ConsumerStr = "2. クリックしてチームの消費量を記録します"
var deleteStr = "3. クリックしてレコードをロールバックします"
var HistoryStr = "4. クリックして履歴をクエリ"
var emptyStr = " " ";
var ReplyStr = "ご清聴ありがとうございました!" "n" emptyStr "n" replaceStr "n" emptyStr "n" ConsumerStr
"n" emptyStr "n" deleteStr "n" emptyStr "n" HistoryStr;
res.reply(replyStr);
}
}));