koa2-wechat2
Version:
koa2 middleware for wechat
95 lines (69 loc) • 1.89 kB
Markdown
**Badges**
Optional badges such as npm version, test and build coverage, and so on.
**Summary**
Koa2Wechat2 use koa2 middleware async function for wechat
koa2Wechat2 provide two method **getWechat()** for wechatApi , and **weReply()** for wechat auto Reply logic
```
$ npm install koa2-wechat2 --save
```
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))
```
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)
```
```sh
npm test
```
MIT