微信公众平台消息接口服务中间件
如果仍然使用 Koa1,请使用[email protected]。
middleware() 方法接受一个 async function 作为参数。
app.use(wechat(config).middleware(async (message) => {
// TODO
}));
现在的上下文不再是原始的 请求上下文,而仅仅是 message 对象。
业务的返回值现在直接返回即可,无需关注上下文。比如:
async (message) => {
return 'Hello world!';
}
不再支持 session 的功能。如需使用 session 功能,建议使用 redis 自行处理逻辑,取 message.FromUserName 作为 key,取一个合适的 ttl 时间即可。
- 自动回复(文本、图片、语音、视频、音乐、图文)
$ npm install co-wechat
const wechat = require('co-wechat');
app.use(wechat('some token').middleware(async (message) => {
// 微信输入信息就是这个 message
if (message.FromUserName === 'diaosi') {
// 回复屌丝(普通回复)
return 'hehe';
} else if (message.FromUserName === 'text') {
//你也可以这样回复text类型的信息
return {
content: 'text object',
type: 'text'
};
} else if (message.FromUserName === 'hehe') {
// 回复一段音乐
return {
type: "music",
content: {
title: "来段音乐吧",
description: "一无所有",
musicUrl: "https://mp3.com/xx.mp3",
hqMusicUrl: "https://mp3.com/xx.mp3"
}
};
} else if (message.FromUserName === 'kf') {
// 转发到客服接口
return {
type: "customerService",
kfAccount: "test1@test"
};
} else {
// 回复高富帅(图文回复)
return [
{
title: '你来我家接我吧',
description: '这是女神与高富帅之间的对话',
picurl: 'https://nodeapi.cloudfoundry.com/qrcode.jpg',
url: 'https://nodeapi.cloudfoundry.com/'
}
];
}
}));
备注:token 在微信平台的开发者中心申请
当用户发送消息到微信公众账号,自动回复一条消息。这条消息可以是文本、图片、语音、视频、音乐、图文。详见:官方文档
async (message) => {
return 'Hello world!';
}
// 或者
async (message) => {
return {type: "text", content: 'Hello world!'};
}
async (message) => {
return {
type: "image",
content: {
mediaId: 'mediaId'
}
};
}
async (message) => {
return {
type: "voice",
content: {
mediaId: 'mediaId'
}
};
}
async (message) => {
return {
type: "video",
content: {
mediaId: 'mediaId',
thumbMediaId: 'thumbMediaId'
}
};
}
async (message) => {
return {
title: "来段音乐吧",
description: "一无所有",
musicUrl: "https://mp3.com/xx.mp3",
hqMusicUrl: "https://mp3.com/xx.mp3"
};
}
async (message) => {
return [
{
title: '你来我家接我吧',
description: '这是女神与高富帅之间的对话',
picurl: 'https://nodeapi.cloudfoundry.com/qrcode.jpg',
url: 'https://nodeapi.cloudfoundry.com/'
}
];
}
async (message) => {
return '';
}
async (message) => {
return {
type: "customerService",
kfAccount: "test1@test" //可选
};
}
欢迎关注。
代码:https://github.com/JacksonTian/api-doc-service
你可以在CloudFoundry、appfog、BAE等搭建自己的机器人。
原始API文档请参见:消息接口指南。
QQ群:157964097,使用疑问,开发,贡献代码请加群。
如果您觉得Wechat对您有帮助,欢迎请作者一杯咖啡
The MIT license.
project : co-wechat
repo age : 2 years, 9 months
active : 14 days
commits : 41
files : 10
authors :
30 Jackson Tian 73.2%
6 ifeiteng 14.6%
3 lixiaojun 7.3%
1 Jealee3000 2.4%
1 fancyoung 2.4%