微信小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能。编写该功能需要以下步骤:
- 编写模版消息,登录 mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。
2.获取下发权限,也就是你想发消息,必须接受人的同意,也就是如下图所示**
如果没有经过同意,该消息就发不出去。一次性订阅消息、长期订阅消息,详见接口 wx.requestSubscribeMessage
设备订阅消息,详见接口 wx.requestSubscribeDeviceMessage
调起客户端小程序订阅消息界面,返回用户订阅消息的操作结果。当用户勾选了订阅面板中的“总是保持以上选择,不再询问”时,模板消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。
代码如下所示
wx.requestSubscribeMessage({
tmplIds: ['KXoC0NS_Q8Z62cn15T-UkU-rpQEJn8nxM'],
success (res) { console.log(res);}
})
wx.getSetting({
success (res) {
console.log(res);
console.log(res.authSetting)
// res.authSetting = {
// "scope.userInfo": true,
// "scope.userLocation": true
// }
}
})
具体参数可以参考一次性订阅消息、长期订阅消息,详见接口 wx.requestSubscribeMessage
设备订阅消息,详见接口 wx.requestSubscribeDeviceMessage
3.调用接口下发订阅消息
一次性订阅消息、长期订阅消息,详见服务端接口 subscribeMessage.send
设备订阅消息,详见服务端接口 hardwareDevice.send
该接口应在服务器端调用,详细说明参见服务端API
发送接口: api.weixin.qq.com/cgi-bin/mes… 具体参数可点链接:subscribeMessage.send
wx.request({
url:'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=55_8O_fxVtv-4hks4WkmFvvMFXhQuofhlGT1wmRIIHcoelpcVA9f9KapWEt9bAkvu-CpCMJu2uP-SuLZnp_Baus3IkfDB4ugRw23HB-dt-c09VRCbAHAMIT',
method:'POST',
data:{
touser:'ohJ_25erYrEgoPo8',
template_id:'KXoC0NS_Q8Z62cn15T-tXQEJn8nxM',
data:{
name1:{value:'等等'},
phrase2:{value:'已申请'},
thing3:{value:'新'},
time4:{value:'2022-04-04'},
thing5:{value:'新申请架'}
},
page:'index'
},
success:(res) =>{
console.log(res)
}})
上面的data中的参数其实就是消息模版中的参数,如图所示:
这样就完成了订阅消息的开发,但是需要注意一下几点:
access_token:接口调用凭证
代码如:
wx.request({
url:'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx43fcfd27&secret=f8fb6b1f564a51cc2b',
header:{
'content-type': 'application/json' // 默认值
},
success(res){
console.log(res.data.access_token);
}
})
而在获取access_token时需要secret,这个获取方式是: mp.weixin.qq.com
以上所有appid,templateid等信息均是假的,需要替换成自己的相关信息,如有错误,欢迎指正。