功能介绍
消息能力是小程序能力中的重要组成,腾讯为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。
- 订阅消息推送位置:服务通知
- 订阅消息下发条件:用户自主订阅
- 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面
消息类型
1. 一次性订阅消息
一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可不限时间地下发一条对应的服务消息;每条消息可单独订阅或退订。
2. 长期订阅消息
一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。
目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。
发送订阅消息步骤:
1. 添加订阅消息模板,获取模板id
登录微信公众平台添加订阅消息模板,获取模板id.
2. 获取下发权限:
wx.requestSubscribeMessage(Object object)
注意事项:此部分代码需要按钮触发,不可放在onload()或onshow()中
wx.requestSubscribeMessage({
tmplIds: ['xxxxxxxxxxxxxxxxxxxxx'],//这里填写模板id
success (res) {
console.log("res--->",res)
},
fail:err=>{
console.log("err---",err)
}
})
3. 调用接口下发订阅消息:
subscribeMessage.send
注意事项:用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。
https调用请求地址:
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
官网的请求参数如下:
必填参数说明
- access_token ------接口调用凭证
注意事项:获取接口凭证:auth.getAccessToken(发送消息需要access_token参数,access_token的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token失效)
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential',
method: 'GET',
data: {
"appid": 'xxxxxx', //小程序appid
"secret": 'xxxxxxx' //小程序密钥
},
success: res => {
console.log("res--",res)
this.data.accessToken=res.data.access_token
},
fail: (e) =>{
console.error("err--",e);
},
complete: (e) =>{
console.log("c--",e);
}
})
- data ------板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
注意事项:发送消息的模板内容:key值要与模板中的一致
以下模板的data值: { "date1": {"value": "2020-01-01 00:00" },"date2": { "value": "2020-01-01 00:00"}, "thing3": { "value": "升级期间暂停服务,感谢你的理解。" },"time4": { "value": "2020-01-01 17:38:26" } },
发送订阅消息代码
wx.request({
url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + this.data.accessToken,
method: 'POST',
data: {
"touser": 'xxxxxxxxxx', //接收者(用户)的 openid
"template_id": 'xxxxxxxxxx', //所需下发的订阅模板id
"page": '/pages/index/index' || '', //点击模板卡片后的跳转页面
"data": {
"date1": {
"value": "2020-01-01 00:00"
},
"date2": {
"value": "2020-01-01 00:00"
},
"thing3": {
"value": "升级期间暂停服务,感谢你的理解。"
},
"time4": {
"value": "2020-01-01 17:38:26"
}
}, //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
"miniprogram_state": "developer" //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
},
success: (res) => {
console.log(res.data);
},
fail: (e) => {
console.errore);
}
})
发送订阅消息成功,手机截图如下
以上就是微信订阅消息设置发送的全过程。
touser能不能传多个
/
?
为什么https://api.weixin.qq.com/cgi-bin/message/subscribe/send这个接口在手机真机上测试接口不触发啊?
好棒棒学到了