因為使用了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是你申請測試公眾號時候填寫的token appid: '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接入微信后台詳細教程