UNPKG

koa2-wechat2

Version:

koa2 middleware for wechat

95 lines (69 loc) 1.89 kB
# koa2-wechat2 **Badges** Optional badges such as npm version, test and build coverage, and so on. **Summary** Koa2Wechat2 use koa2 middleware async function for wechat ## Overview koa2Wechat2 provide two method **getWechat()** for wechatApi , and **weReply()** for wechat auto Reply logic ## Installation ``` $ npm install koa2-wechat2 --save ``` ## Basic use if we only want to get wechat auto reply, then ```js import Koa from 'koa' import {weReply} from 'koa2-wechat2' const app = new Koa() //opts see below app.use(weReply(opts)) ``` ## API the following methods both have a opts parameter ```js let opts { appID:'xx', appSecret:'xx', token:'eid' } ``` - ``weReply(opts, handler)`` : if handler undefined then use default reply handler, you can provide your own reply logic, example below, more details [reply.js](/src/wx/reply.js): ```js let handler = async (ctx, next) => { //ctx.wexin is wechat server post content to your node server let message = ctx.weixin let reply if (message.MsgType === 'event') { if (message.Event === 'subscribe') { if (message.EventKey) { console.log(`qrcode: ${message.EventKey} ${message.ticket}` ) } reply ='haha , you subscribed\n' } else if (message.Event === 'unsubscribe') { console.log('unsubscribe') reply = 'unsubscribe' } } else if (message.MsgType === 'voice') { let voiceText = message.Recognition reply = `you says: ${voiceText}` } else if (message.MsgType === 'text') { // this handle your input text logic } else { reply = 'empty msg' } ctx.body = reply await next() } ``` - ``getWechat(opts)`` : returned wechatApi with promisify method, ex: ```js import {getWechat} from 'koa2-wechat2' //opts above: appId, Secret, token let wechatApi = getWechat(opts) ``` ## Tests ```sh npm test ``` ## License MIT