Nodejs微信開發


因為使用了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接入微信后台詳細教程

 


免責聲明!

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



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