订阅消息是小程序一个比较重要的功能,这也是与你客户打交道的必备功能。通过微信通知客户,从而为客户提供更好地服务。
要通过云函数来实现订阅消息,其实挺简单。也就那么回事儿~
首先,你需要在小程序后台开通订阅消息,然后选用模板。
选用之后,我们通过两个步骤,来实现订阅消息的发送。
一、编写云函数 二、在小程序端授权并调用云函数
第一步,云函数的编写很简单,给你个模板直接往里套内容。
const cloud = require('wx-server-sdk')cloud.init()exports.main = async (event, context) => {try {const result = await cloud.openapi.subscribeMessage.send({touser: event.openid, //要发送用户的openidpage: 'pages/index/index', //用户通过消息通知点击进入小程序的页面lang: 'zh_CN',//进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CNdata: {//要发送的数据,这里需要注意的事项,我在下面说number01: {value: '339208499'},date01: {value: '01月05日'},site01: {value: 'TIT创意园'},site02: {value: '广州市新港中路397号'}},templateId: 'TEMPLATE_ID', //订阅消息模板IDminiprogramState: 'developer' //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版})return result} catch (err) {return err}}
这里需要注意的是,在填写data数据时,你需要填写的key值,为模板消息给出的key值。看下图:
云函数写好之后,我们需要在小程序端调用云函数。并且传入订阅消息需要发送的数据:
js:
wx.cloud.callFunction({name:"sendCommentInfo",data:{openid: , //传入需要发送信息的用户openidcommentPeople:******, //下面这些数据是你需要发送的内容commentContent: *****,commentTime:******,commentTitle:********,_id:********},success:res=>{console.log(res)}})
完美,完成了云函数和小程序端的调用云函数代码。我们仅需最后一步,即可实现订阅消息的发送。
最后一步很关键,也很重要。那就是用户授权模板消息的订阅。
现在微信订阅消息的机制是只有用户授权,消息才能够发送,并且授权一次只能发送一条信息。如果用户点击保持以上选择,授权了此订阅消息,那么就能够一直收这个信息,相反,如果用户点击保持以上选择,拒绝了此订阅消息,那么就永远不能接收此订阅消息。
授权代码:
wx.requestSubscribeMessage({tmplIds: [''], //这里填写你的模板IDsuccess:res=>{wx.showToast({title: '已开启',})},fail:res=>{wx.showToast({title: '已拒绝',})}})
好了,经过以上几个简单的步骤,就可以实现订阅消息了。最后给大家看下效果:
最后,再给一点提示吧。就是调用云函数时,传数据给模板消息,数据格式要与你的模板消息格式相同。否则会报错!
下面,给一些常出错的原因。可在调用云函数之后打印参数,在参数内看结果。
有问题可在下方留言~