小程序不具备小程序内扫描二维码的能力,因此如果要实现关注公众号或加用户群功能大家一般都利用微信客服功能的自动回复来实现。
此时如果自己去实现微信客服自动回复,客服小助手就不能用了,很令人纠结。
经过我的研究,借助云开发找到了一个方案,可以实现当用户想获取微信群走自动回复的接口,真正咨询时,直接到客服小助手进行回复。
效果如下
原理解析
云开发在做消息推送配置的时候可以配置消息类型,这个时候如果我们只配置一种类型(小程序卡片),那么就只有卡片才会被云函数接管做自动回复,其他消息类型(图片、文字)则正常走小程序客服的通道。
实现步骤
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,绑定云函数为新建的云函数。
5.微信公众平台绑定客服
注意事项
如果按照本教程 客服小助手无法收到消息 或 无法自动回复,可以先将以上消息推送配置删除,然后再微信后台绑定客服后,再重新进行消息推送配置。
请问,我按照您的方法,但是推送的图片消息有延迟,我在小程序客服窗口接收不到,要关闭小程序回到微信聊天列表才能在客服消息里收到。延迟问题该如何解决啊
也就是:
特定按钮→特定卡片→云函数自动回复
其他按钮→小程序客服
这样操作?
云函数接收了消息推送,客服小助手接收不到了。那如何同时把用户消息转发到客服系统上