一、推送消息需求
一个简单常见的需求:推送小程序消息通知到用户!
需要解决的问题:
- 小程序消息推送服务有什么限制?
- 小程序可支持推送哪些类型消息?
- 如何实现小程序消息通知推送服务?
二、小程序提供的能力
小程序支持通过【消息模板】向“订阅消息”的用户推送消息通知!
- 支持向主动“订阅消息”的用户推送通知(注意:这里是“订阅消息”而非订阅小程序),不支持主动向未订阅消息用户推送通知
- 支持通过【消息模板】发送“订阅消息”,不支持发送任意无模板消息;
- 一般小程序不支持自定义消息模板(目前自定义消息模板功能已废弃,暂不确定哪些类型小程序或仍可自定义消息模板,有哪些方面的限制)
- 一般小程序仅支持从官方提供的公共模板库中选择【消息模板】
- 一般小程序仅可支持发送“一次性订阅消息”,即“一次订阅,一次推送”
- 目前仅公共服务类小程序可支持发送“长期订阅消息”,即“一次订阅,长期推送”
1、订阅消息能力
小程序订阅消息 | 微信开放文档
2、三种消息类型
由于长期订阅目前仅面向公共服务开放,如此我等普通小程序就只能选择一次性订阅了!
3、不支持自定义模板
1)自定义消息模板接口已废弃
2)不支持新建自定义模板
三、订阅消息的实现流程分析
1、实现步骤
小程序订阅消息 | 微信开放文档
2、完整流程
实现发送订阅消息,首先需要配置消息模板、获取小程序的appkey、secret、用户openid、token等,因此,从0到1的完整实现流程如下:
四、一次性订阅消息的实现及示例
1、配置消息模板+获取appid+secret
链接:微信公众平台
1)配置消息模板
2)获取appid + secret
2、登录认证并获取openid
小程序登录 | 微信开放文档
1)获取code
wx.login(Object object) | 微信开放文档
wx.login({
success (res) {
if (res.code) {
//发起网络请求
wx.request({
url: 'https://example.com/onLogin',
data: {
code: res.code
}
})
} else {
console.log('登录失败!' + res.errMsg)
}
}
})
2)获取openid
auth.code2Session | 微信开放文档
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
3、订阅消息
wx.requestSubscribeMessage(Object object) | 微信开放文档
wx.requestSubscribeMessage({
tmplIds: [''],
success (res) { }
})
4、获取token
auth.getAccessToken | 微信开放文档
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
5、发送订阅通知
subscribeMessage.send | 微信开放文档文章来源:https://www.toymoban.com/news/detail-483272.html
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
Accept: */*
Cache-Control: no-cache
Content-Type: application/json;charset=UTF-8
{
"touser": "OPENID",
"template_id": "TEMPLATE_ID",
"page": "index",
"miniprogram_state":"developer",
"lang":"zh_CN",
"data":{
"character_string1":{
"value":"FK20220819001"
},
"phrase2":{
"value":"审批通过"
},
"time3":{
"value":"2022年08月19日 15:01"
},
"thing4":{
"value":"领导同意了"
}
}
}
注意:data数据的key与消息模板定义一致
6、示例
四、链接
微信公众平台
小程序订阅消息 | 微信开放文档
小程序登录 | 微信开放文档
wx.login(Object object) | 微信开放文档
auth.code2Session | 微信开放文档
wx.requestSubscribeMessage(Object object) | 微信开放文档
auth.getAccessToken | 微信开放文档
subscribeMessage.send | 微信开放文档
文章来源地址https://www.toymoban.com/news/detail-483272.html
到了这里,关于【小程序】一次关于小程序消息推送能力的分析及实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!