分析:
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"
]
}
}
一直都报错:openapi.customerServiceMessage.send:fail response out of time limit or subscription is canceled hint!解决了没有?