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