因為使用了Bot Framework開發了一個小功能,它目前支持了Skype\Teams\Slack等,但在國內來講,微信還是一個比較流行的軟件,所以需要接上微信
原來開發Bot的時候使用的是.Net開發的,這次我決定使用Nodejs開發一個簡單的后臺程序。
說真的,剛開始的時候沒有任何經驗,剛開始的時候,還是很辛苦的。
一.注冊一個微信公眾號(我開始的時候注冊了一個個人訂閱帳號,才發現似乎接口不支持),推薦使用官方的測試平臺(http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login),是一個功能完整的測試帳號
?
二.使用Nodejs開發后臺,前提是你的機器已經安裝了Nodejs開發環境
如果你本機還未全局安裝express,那先使用npm全局安裝express
npm install express -g
?
2.1 選中一個目錄,使用express創建一個項目
express WeChat-Bot
這時,在該目錄就會產生一個WeChat-Bot的文件夾
2.2在命令行中進入至WeChat-Bot文件夾,安裝依賴包(express生成的項目會包含某部分依賴包)并安裝wechat
cd WeChat-Bot
npm install
npm install wechat -save
2.3編輯control加入文件wechat.js,并加入代碼
var wechat = require('wechat'); var config = {token: 'weixin',//token是你申請測試公眾號時候填寫的tokenappid: 'wxf6d0ac7f84dc22fb',//appid是申請時,自動生成的,就在最頂部encodingAESKey: 'ZEtViedarf49EUOCDeu45pqhkZhKPFBjSHI2DynP4vq',checkSignature: true // 可選,默認為true。由于微信公眾平臺接口調試工具在明文模式下不發送簽名,所以如要使用該測試工具,請將其設置為false };//以下開始為獲取到微信服務器發送過來的消息,并在此處回復消息 //此處監控的是URL的wechat,那么在配置微信的URL時,也需要在主機URL地址后面加入wechat這樣才可以獲取到數據 app.use(express.query()); app.use('/wechat', wechat(config, function (req, res, next) {// 微信輸入信息都在req.weixin上 var message = req.weixin;
console.log(message);
if(message.MsgType === 'text'){ res.reply('這是一個自動回復'); }else if(message.MsgType === 'voice'){ }else if(message.MsgType === 'image'){res.reply([{title: '文章提示',description: '返回的是文章',picurl: 'http://pic002.cnblogs.com/images/2011/159097/2011102917303125.jpg',url: 'http://doxmate.cool/node-webot/wechat/api.html'}]);} }));
2.4使用npm運行項目,運行命令后,Nodejs將在本機開發監聽3000端口的請求
npm start
三.使用ngrok將本機端口發布至公網
將生成的公網URL復制至公眾平臺中,為什么在地址后面加入wechat??這是因為Nodejs中,不是監聽根目錄,而是根目錄下的wechat路徑,如果監聽的是根目錄,則在公眾號中不需要加入wechat
?微信與公眾號后臺數據交互流程
?
?
參考:https://www.npmjs.com/package/wechat ? wechat包
http://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index ?微信公眾號測試開發平臺
http://www.cnblogs.com/xuange306/p/4971702.html ? 微信后臺開發第一步:nodeJS+express接入微信后臺詳細教程
?