600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 微信公众号开发之消息的自动回复

微信公众号开发之消息的自动回复

时间:2021-01-21 01:10:51

相关推荐

微信公众号开发之消息的自动回复

文章目录

代码代码对于代码的解释事件的消息模板使用恢复函数

专栏目录请点击

因为我们需要回复不同类型的消息,这里我们在wechat文件夹下,新建一个reply.js,他专门用于消息的自动回复reply.js暴露出一个函数,这个函数接收一个参数message,就是我们需要发送的消息,函数返回对应的模板,并发送给微信服务器

代码

代码

const template = require('./template');module.exports = async message => {//定义options let options = {toUserName: message.FromUserName,fromUserName: message.ToUserName,createTime: Date.now(),msgType: 'text'}//设置回复用户消息的具体内容let content = '';// 判断用户发送消息的类型和内容,决定返回什么消息给用户if (message.MsgType === 'text') {if (message.Content === '1') {content = '大吉大利,今晚吃鸡'} else if (message.Content === '2') {content = '落地成盒'} else if (message.Content === '3') {// 回复图文消息content = [{title: 'Nodejs开发',description: '微信公众号开发',picUrl: '/6ONXsjip0QIZ8tyhnq/it/u=1841004364,244945169&fm=58&bpow=121&bpoh=75',url: '/'}, {title: 'web前端',description: '这里有最新、最强的技术',picUrl: '/6ONWsjip0QIZ8tyhnq/it/u=1981851186,1061&fm=58&s=6183FE1ECDA569015C69A554030010F3&bpow=121&bpoh=75',url: '/'}];options.msgType = 'news'} else if (message.Content.match('爱')) {//模糊匹配,只要包含爱content = '我爱你~'} else {content = '您在说啥,我听不懂'}} else if (message.MsgType === 'image') {content = '您的图片地址为:' + message.PicUrl} else if (message.MsgType === 'voice') {content = '语音识别结果:' + message.Recognition} else if (message.MsgType === 'video') {content = '接受了视频消息'} else if (message.MsgType === 'shortvideo') {content = '接受了小视频消息'} else if (message.MsgType === 'location') {content = '纬度:' + message.Location_X + '经度:' + message.Location_Y + '缩放大小:' + message.Scale + '详情:' + message.Label} else if (message.MsgType === 'link') {content = '标题:' + message.Title + '描述:' + message.Description + '网址:' + message.Url} else if (message.MsgType === 'event') {if (message.Event === 'subscribe') {//用户订阅事件content = '欢迎您的订阅~';if (message.EventKey) {//扫描带参数的二维码的订阅事件content = '欢迎您扫二维码的关注'}} else if (message.Event === 'SCAN') {//已经关注了公众号,在扫描带参数二维码进入公众号content = '已经关注了公众号,在扫描带参数二维码进入公众号'} else if (message.Event === 'unsubscribe') {// 用户取消关注console.log('无情取关~')} else if (message.Event === 'LOCATION') {// 用户进行会话时,上报一次地理位置消息content = '纬度:' + message.Latitude + '经度:' + message.Longitude + '精度:' + message.Precision} else if (message.Event === 'CLICK') {content = '点击了菜单~~~'} else if (message.Event === 'VIEW') {// 用户点击菜单,跳转到其他链接console.log('用户点击菜单,跳转到其他链接')}}//将最终回复消息内容添加到options中options.content = content;//将最终的xml数据返回出去return template(options)}

对于代码的解释

这里我们使用了引入的模板template,点击 定义了options变量,这个变量就是所有种类的回复消息的共同内容不同的内容,用if判断语句来进行判断了他是一个函数,会根据不同的类型的消息返回不同的模板

事件的消息模板

因为触发事件回复的消息模板与自动回复的消息模板差不多,我就一起写了出来

使用恢复函数

这里就是使用reply.js暴露出的函数

我们打卡auth.js这个文件,删除不需要的结构,写上如下的代码

user_data = formatMsg(user_data)// 使用reply.jsconst replyMessage = await reply(user_data)console.log(replyMessage)// 将消息结构发送到微信服务器res.send(replyMessage)

这个时候,我们再测试一下,就会发现,成功了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。