评论

云函数搞一搞消息推送

云函数 客服 消息推送

分析:

1.传统客服消息都是利用button组件并指定open-type来拉起客服;

2.利用云函数可在任意元素上拉起客服,如:view,text,image;这个优势特别好,方便统一处理CSS(赞赞赞);

3.需要在小程序的全局配置中开启消息推送;

4.需要在云函数同级目录下创建开启权限的配置文件config.json;

5.云函数支持多种消息,如文本,图片,小程序等;文本类型的消息可以是静态文本;也可以是<a>链接.这个<a>可打开网页;也可打开小程序(指定小程序的appid和要打开的页面),二者选一.如果同时指定,则打开小程序;( 好象只能推送小程序本身.我试了下,推送另外一个个人小程序appid,是失败的.我用的小程序是企业小程序.不知道这里有没有特别的考虑.请大牛指点!!! )

6.创建用于推送消息的云函数;

7.在小程序的全局配置中,添加消息推送,选择消息类型,环境并指定要处理的云函数(这个要提前创建好,可以先不着急写业务逻辑);

8.在云函数中编辑业务逻辑;

9.理解有限,其他更深入的应用也还没涉及.多多指教!

(编辑更新)重点来了:这个函数特别容易报超时或订阅取消之类的错误(如下).MS没有发现解决的方法.请管理们和大牛们加油啊

openapi.customerServiceMessage.send:fail response out of time limit or subscription is canceled hint

下面以发送欢迎词为例

wxml:当用户点击这个view时,就会拉起客服.并自动收到云函数发送的问候词.

<view bindtap="onSub">sub</view>

js:事件处理函数(这个事件的目的是调用云函数,如果用传统的BUTTON客服,就不用写这个事件,系统会自动调用这个云函数)

onSub() {
  wx.cloud.callFunction({
    name: 'client-hello'
  }).then(res => {
    console.log(res)
  })
}

js:云函数client-hello

const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async(event, context) => {
  let {
    OPENID,
    APPID,
    UNIONID
  } = cloud.getWXContext();
  return await cloud.openapi.customerServiceMessage.send({
    touser: OPENID,
    msgtype: 'text',
    text: {
      content: '欢迎光临,更多优惠请点点击跳小程序',
    }
  })
}

js:配置文件(云函数同级目录下哦)

{
  "permissions": {
    "openapi": [
      "templateMessage.send"
    ]
  }
}
最后一次编辑于  2020-03-16  
点赞 1
收藏
评论

2 个评论

登录 后发表内容