koa2-weixin
Version:
wechat/weixin platform for koa2
144 lines (131 loc) • 3.15 kB
Markdown
Koa2-weixin [](http://badge.fury.io/js/koa2-weixin) [](https://travis-ci.org/mindspop/koa2-weixin)
======
微信公众平台消息接口服务中间件与API SDK
## 功能列表
- 自动回复(文本、图片、语音、视频、音乐、图文)
## Installation
```sh
$ npm install koa2-weixin
```
## Use with koa
```js
const wechat = require('koa2-weixin')
app.use(wechat('some token'))
app.use(async (ctx, next) => {
// 微信输入信息都在ctx.weixin上
const message = ctx.weixin
if (message.FromUserName === 'diaosi') {
// 回复屌丝(普通回复)
ctx.body = 'hehe'
} else if (message.FromUserName === 'text') {
//你也可以这样回复text类型的信息
ctx.body = {
content: 'text object',
type: 'text',
}
} else if (message.FromUserName === 'hehe') {
// 回复一段音乐
ctx.body = {
type: 'music',
content: {
title: '来段音乐吧',
description: '一无所有',
musicUrl: 'http://mp3.com/xx.mp3',
hqMusicUrl: 'http://mp3.com/xx.mp3',
}
}
} else if (message.FromUserName === 'kf') {
// 转发到客服接口
ctx.body = {
type: 'customerService',
kfAccount: 'test1@test',
}
} else {
// 回复高富帅(图文回复)
ctx.body = [
{
title: '你来我家接我吧',
description: '这是女神与高富帅之间的对话',
picurl: 'http://nodeapi.cloudfoundry.com/qrcode.jpg',
url: 'http://nodeapi.cloudfoundry.com/',
}
]
}
})
```
备注:token在微信平台的开发者中心申请
### 回复消息
当用户发送消息到微信公众账号,自动回复一条消息。这条消息可以是文本、图片、语音、视频、音乐、图文。详见:[官方文档](http://mp.weixin.qq.com/wiki/index.php?title=发送被动响应消息)
#### 回复文本
```js
ctx.body = 'Hello world!'
// 或者
ctx.body = {type: 'text', content: 'Hello world!'}
```
#### 回复图片
```js
ctx.body = {
type: 'image',
content: {
mediaId: 'mediaId',
},
}
```
#### 回复语音
```js
ctx.body = {
type: 'voice',
content: {
mediaId: 'mediaId',
},
}
```
#### 回复视频
```js
ctx.body = {
type: 'video',
content: {
mediaId: 'mediaId',
thumbMediaId: 'thumbMediaId',
},
}
```
#### 回复音乐
```js
ctx.body = {
type: 'music',
content: {
title: '来段音乐吧',
description: '一无所有',
musicUrl: 'http://mp3.com/xx.mp3',
hqMusicUrl: 'http://mp3.com/xx.mp3',
},
}
```
#### 回复图文
```js
ctx.body = {
type: 'news',
content: [
{
title: '你来我家接我吧',
description: '这是女神与高富帅之间的对话',
picurl: 'http://nodeapi.cloudfoundry.com/qrcode.jpg',
url: 'http://nodeapi.cloudfoundry.com/',
}
],
}
```
#### 回复空串
```js
ctx.body = ''
```
#### 转发到客服接口
```js
ctx.body = {
type: 'customerService',
kfAccount: 'test1@test', //可选
}
```
## License
The MIT license.