【笔记】云开发通过客服消息实现自动回复 及 二维码识别能力,同时兼容客服小助手
发布于 4 年前 作者 qianjuan 4447 次浏览 来自 分享

小程序不具备小程序内扫描二维码的能力,因此如果要实现__关注公众号__或__加用户群__功能大家一般都利用微信客服功能的自动回复来实现。> 此时如果自己去实现微信客服自动回复,客服小助手就不能用了,很令人纠结。> 经过我的研究,借助云开发找到了一个方案,可以实现当用户想获取微信群走自动回复的接口,真正咨询时,直接到客服小助手进行回复。

效果如下

原理解析

云开发在做消息推送配置的时候可以配置消息类型,这个时候如果我们只配置一种类型(小程序卡片),那么就只有卡片才会被云函数接管做自动回复,其他消息类型(图片、文字)则正常走小程序客服的通道。

实现步骤

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,绑定云函数为新建的云函数。

回到顶部