用Node.js開發微信公眾號


=͟͟͞͞( •̀д•́)

用Node.js開發一個微信公眾號

閑來無事,於是弄了個微信的公眾號來玩玩~
下文來介紹如何弄一個微信公眾號吧。

微信公眾號工作原理

先來簡單的介紹下,大概的工作流程

大概如下圖所示:
wechat-work-flow

當用戶給公眾號發送消息時,微信服務器通過我們綁定的服務器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.進入公眾號開發平台,在這個菜單欄
wechat-dev-a

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

3.這樣就大工搞成了

Demo

用微信掃一掃就可看到
qrcode

源碼

我是分開成兩個項目來做的:

  • atpdata (這個不用理)
  • wechat (前端是用Vue來寫的)

代碼寫的很渣。。。歡迎指正 ~(>_<。)\

參考鏈接:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM