【笔记】云开发通过客服消息实现自动回复 及 二维码识别能力,同时兼容客服小助手
小程序不具备小程序内扫描二维码的能力,因此如果要实现__关注公众号__或__加用户群__功能大家一般都利用微信客服功能的自动回复来实现。> 此时如果自己去实现微信客服自动回复,客服小助手就不能用了,很令人纠结。> 经过我的研究,借助云开发找到了一个方案,可以实现当用户想获取微信群走自动回复的接口,真正咨询时,直接到客服小助手进行回复。
效果如下
原理解析
云开发在做消息推送配置的时候可以配置消息类型,这个时候如果我们只配置一种类型(小程序卡片),那么就只有卡片才会被云函数接管做自动回复,其他消息类型(图片、文字)则正常走小程序客服的通道。
实现步骤
1.小程序端设置按钮属性open-type=“contact”,用于用户点击时带上定义的卡片跳到客服消息界面。
加用户群
2.新建云端的函数,设置config.json定义权限,如下config.json
{
"permissions": {
"openapi": [
"customerServiceMessage.send",
"customerServiceMessage.uploadTempMedia",
"customerServiceMessage.setTyping"
]
}
}
3.写云函数端代码,如下
if (event.Title == "我要进用户群"||event.Title =="关注公众号"||event) {
//设置输入状态
cloud.openapi.customerServiceMessage.setTyping({
touser: OPENID,
command: 'Typing'
})
//从云储存中拉取图片数据
const qunimg = await cloud.downloadFile({
fileID: "cloud://pm-hsfip.706d-pm-hsfip-1259751853/img/qun.png",
})
//上传图片素材到媒体库,并获取到图片id
const qunmedia = await cloud.openapi.customerServiceMessage.uploadTempMedia({
type: 'image',
media: {
contentType: 'image/png',
value: qunimg.fileContent
}
})
//向用户发送群二维码
await cloud.openapi.customerServiceMessage.send({
touser: OPENID,
msgtype: 'image',
image: {
mediaId: qunmedia.mediaId,
}
})
//取消状态设置
cloud.openapi.customerServiceMessage.setTyping({
touser: OPENID,
command: 'CancelTyping'
})
}
4.设置消息推送,路径如下 云开发-设置-全局设置-云函数接收消息推送 中添加消息类型为miniprogrampage,绑定云函数为新建的云函数。