订阅消息的发送总体来说,分为三步:
- 添加订阅消息的模板
- 小程序端请求用户授权发送订阅消息
- 服务端调用接口发送订阅消息。
接下来,我们一一看一下这几步
1. 添加订阅消息的模板
2. 请求发送订阅消息权限
在完成了获取订阅消息的模板以后,我们可以得到一个模板 ID,接下,我们可以开始编写代码获取用户授权。
这里直接新建了一个 msg 页面,并在其上放置一个按钮,进行事件绑定。
在 request 方法中添加代码来实现订阅
wx.requestSubscribeMessage({
tmplIds: ['vOwhnYIphYGYWaan2slhRB6LJUQtTPmfJ7h5y-_-SCo'],
success (res) {
console.log(res)
}
})
添加后,开启小程序的真机调试,并在手机上点击按钮,触发事件,并确认,就可以获得如下返回。
在这样的返回中,就说明你成功的订阅了这封订阅消息,后续只需要使用这个模板 ID 发送消息就好。
3. 发送订阅消息
在获取到了订阅消息的发送权限后,就可以开始编写云函数来完成消息的发送。
新建一个云函数,并在其 config.json 中声明 subscribeMessage.send
的权限
{
"permissions": {
"openapi": [
"subscribeMessage.send"
]
}
}
随后,在云函数代码中编写代码,来实现订阅消息的推送。
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
return await cloud.openapi.subscribeMessage.send({
touser: wxContext.OPENID,
templateId: 'vOwhnYIphYGYWaan2slhRB6LJUQtTPmfJ7h5y-_-SCo',
data:{
thing1:{
value:"产品名"
},
name3:{
value:"老王"
}
}
});
}
通过在小程序端使用 callFunction 调用这个函数,可以看到订阅消息的发送效果。
这样,我们就完成了订阅消息的发送。