=͟͟͞͞( •̀д•́)
用Node.js開發一個微信公眾號
閑來無事,於是弄了個微信的公眾號來玩玩~
下文來介紹如何弄一個微信公眾號吧。
微信公眾號工作原理
先來簡單的介紹下,大概的工作流程
大概如下圖所示:

當用戶給公眾號發送消息時,微信服務器通過我們綁定的服務器URL,將消息以及驗證信息進行打包,發送到該URL,類似於POST請求。服務器接收到消息后,解析消息,然后通過HttpServletResponse給微信服務器發送回應(其中包括appid,appsecret等驗證信息),微信服務器再把從服務器接收到的信息轉發給用戶。
選擇服務器
現在有不少支持Node.js的服務器,新浪雲,阿里雲,百度雲等。我選了百度雲,根據預算就好 ~(>_<。)\
進入開發 (•̀ロ•́)و✧ ~~
用Node.js開發一個公眾號其實是非常簡單的,因為有wechat這個包可以供我們使用。
這個包已經幫我們完成了大部分的工作,主要是接收解析微信服務器發過來的信息,然后定義了返回的格式。
而且文檔也寫的相當清楚,真是幫我們偷了一個大懶 23333
安裝
如果還沒安裝npm與node,請先安裝安裝教程
在項目目錄下
npm install wechat --save
//安裝其他要用到的
npm install express body-parser --save
下面來寫一個hello world的demo
wechat.js(項目目錄)
var wechat = require('wechat');
var verifyInfo = { //驗證信息
token: '', // your wechat token
appid: '' // your wechat appid
};
//處理文本消息
var handler = wechat(verifyInfo, wechat.text(wechatText));
module.exports = handler;
function wechatText(message, req, res, next) {
var input = (message.Content || '').trim();
if (/你好/.test(input)) {
res.reply('Hello world (•̀ロ•́)و✧ ~~');
} else {
res.reply('(¬_¬)ノ 聽不懂啦');
}
}
app.js(項目目錄下)
var express = require("express");
var bodyParser = require("body-parser");
var app = express();
//config
app.set('port', 2333);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
// route
app.use('/weixin', require('./wechat'));
// start up server
app.listen(app.get('port'), function () {
console.log('Server listening on:', app.get('port'));
});
下一步
先注冊一個微信公眾號,注冊時有訂閱號,服務號,企業號三種類型的公眾號可選。我選的是訂閱號。
一般情況下,個人選訂閱號就可以了。訂閱號的限制在於,現在個人賬號無法進行微信驗證,一些接口是沒法使用的,比如自定義菜單的接口 (T▽T)
本來打算把查詢做成菜單形式的,這樣查詢就方便很多,可惜沒這個權限,只好做成一問一答的形式。再次默哀。。。。
不過我們也可申請一個微信公眾號開發者測試賬號,里面有所有接口的權限
注冊好后,把appid,appsecret填到wechat.js上,再把代碼部署到服務器上
接下來
1.進入公眾號開發平台,在這個菜單欄

2.在URL那一欄寫上你的服務器地址

3.這樣就大工搞成了
Demo
用微信掃一掃就可看到

源碼
我是分開成兩個項目來做的:
代碼寫的很渣。。。歡迎指正 ~(>_<。)\
