关于小程序:微信小程序订阅消息开发指南

48次阅读

共计 4058 个字符,预计需要花费 11 分钟才能阅读完成。

2019 年 10 月 12 日微信凋谢了小程序订阅音讯的性能。按官网的说法,目前的模板音讯在实现小程序服务闭环上存在缺点:

1. 局部开发者在用户无预期或未进行服务的状况下发送与用户无关的音讯,对用户产生了骚扰;
2. 模板音讯需在用户拜访小程序后的 7 天内下发,不能满足局部业务的工夫要求

模板音讯的确存在上述的硬伤,不利于小程序的用户留存和用户体验。为了解决这些问题,微信官网推出了用户订阅音讯性能。我在微慕专业版上加了订阅音讯的性能,并验证了这个性能。这个性能是否能都达到官网的预期,这个我感觉不那么乐观。这里我先说我的感触:目前的订阅音讯还很不欠缺,根本是“半成品”,后续还有很大的优化空间。

目前,官网只凋谢了“一次性订阅音讯”,尚未凋谢“长期性订阅音讯”,因而我只尝试了“一次性订阅音讯”。

一次性订阅音讯:用于解决用户应用小程序后,后续服务环节的告诉问题。用户自主订阅后,开发者可不限工夫公开发一条对应的服务音讯;每条音讯可独自订阅或退订。

订阅音讯推送地位:服务告诉
订阅音讯下发条件:用户自主订阅
订阅音讯卡片跳转能力:点击查看详情可跳转至该小程序的页面

以下我简略阐明订阅音讯的开发过程和应用体验。

一. 订阅音讯的开发

1. 获取订阅音讯的模板 ID

在微信小程序的治理后盾,在左侧“性能”菜单,抉择“订阅音讯”,而后点击“增加”

而后抉择你须要的音讯模板,并配置关键词。

配置实现后,如下图所示。

值得关注的是,在配置好的模板详情页面里的“具体内容”很重要,这个就是开发订阅音讯时须要遵循的音讯格局,这个格局和模板音讯有轻微的差异

依据微慕小程序的须要,我选用了“新的评论揭示”和“内容更新揭示”这两个音讯模版。前者用于揭示发表话题或文章的作者,有新的话题或文章评论,加强作者与读者之间的交换互动 ;后者是揭示订阅用户,小程序有新的文章公布, 疏导用户回归小程序

订阅音讯申请模板的时候,须要抉择所属类目,只能抉择以后小程序相干的类目模板,对于模板音讯不须要抉择对应类目。如果删除小程序类目,就会把订阅音讯模板一起删除。因而删除类目要小心谨慎。

2. 触发用户订阅,获取下发的权限
触发用户订阅,微信小程序提供的 api 是:wx.requestSubscribeMessage,用户产生点击行为或者发动领取回调后,才能够调起订阅音讯界面。

留神: 微信小程序开发工具尚不反对此性能,在开发工具触发订阅的 api,会提醒:
requestSubscribeMessage:fail 开发者工具临时不反对此 API 调试,请应用真机进行开发

update:2020 年 5 月 18 日,日前订阅音讯曾经反对微信小程序开发工具。

调用 api 的代码示例如下:

`wx.requestSubscribeMessage({
tmplIds: [“ 模板 A ”,” 模板 B ”],
success: function (res) {
// 胜利
},
fail(err) {
// 失败
console.error(err);
}
})`

wx.requestSubscribeMessage(Object object) 的回调函数object.success 参数有两个:errMsg 和 TEMPLATE_ID;接口调用胜利时 errMsg 值为’requestSubscribeMessage:ok’。TEMPLATE_ID 是动静的键,即模板 id,值包含’accept’、’reject’、’ban’。’accept’示意用户批准订阅该条 id 对应的模板音讯,’reject’示意用户回绝订阅该条 id 对应的模板音讯,’ban’示意已被后盾封禁。例如

{errMsg:“requestSubscribeMessage:ok”, zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE:“accept”} 示意用户批准订阅 zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE 这条音讯。

集体感觉这个动静键不是特地正当,代码解决起来有些麻烦,如果改成动态键的 json 格局比拟不便解决,例如:
`{
errMsg:”requestSubscribeMessage:ok”,
result: [
{templateId:”zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE”,
status:”accept”
}
]
}`

在手机上调用此 api 办法会调出订阅音讯的界面,如下图所示:

对于这个订阅音讯的受权有几点要留神:

1) 在确认提示框里,如果用户抉择“勾销”示意回绝(勾销)订阅音讯,抉择“容许”示意用户订阅一次音讯。

2) 如果用户不勾选“总是放弃以上抉择,不再询问”,那么每次用户触发都会弹出提示框。

3) 如果用户勾选“总是放弃以上抉择,不再询问”,那么将再也不会唤起这个对话框。同时,如果抉择“勾销”,那么当前每次调用这个 api 的时候,都会主动回绝;如果抉择“容许”,那么当前每次调用此 api,都会主动容许受权。

目前小程序没有提供获取用户是否受权订阅音讯的办法。通过 wx.openSetting 办法无奈获取用户是否受权音讯订阅的信息,scope 列表没有订阅音讯的内容。

如果想从主动回绝转换到主动主动运行,须要关上小程序的设置去配置。设置办法:点击小程序右上角的三个点,关上如下对话框

而后抉择“设置”,在设置项里抉择“订阅音讯”

4)对于同一种音讯,用户能够订阅屡次,订阅多少次,就会收到多少次订阅音讯,这个订阅次数是否有下限,官网没有阐明,初步判断是不限的。然而,微信不会提供订阅的次数,因而须要在小程序的后端服务里存储用户订阅的次数。因而,我在微慕小程序专业版里,提供了一个给用户屡次订阅的设置,并记录用户订阅的次数。

如果用户须要某个音讯服务,能够订阅屡次,当然也能够在点击“订阅”的对话框里抉择“勾销”,“勾销”一次也就缩小一次订阅。

5)对于领取的场景,也须要用户确认是否订阅,这个我感觉不合理,领取后给用户一个订单推送音讯应该是刚性需要,不须要再询问一遍用户是否订阅。

2. 调用接口下发订阅音讯

订阅音讯下发的接口是小程序后盾服务端调用:subscribeMessage.send,此办法相似下发模板音讯的办法,具体调用阐明见参考官网的链接:
https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html

订阅音讯的下发接口办法和模板音讯稍有不同,

模板音讯的 json 格局如下
`
“data”: {
“keyword1”: {
“value”: “ 内容 1 ”,
“color”: “#000”
},
“keyword2”: {
“value”: “ 内容 2 ”,
“color”: “#000”
}
}
`

而订阅音讯的 json 格局如下:
`
“data”: {
“thing1”: {
“value”: “ 内容 ”
},
“number2”: {
“value”: 20
}
`

订阅音讯的字段 key 是和数据类型无关,value 的参数须要严格依照设置的类型提交,如果不按类型提交,会导致发送失败。同时如果是文本型的内容,字数也有限度,超过限度也会发送失败,但具体字数是多少,官网没有给出,同时中英文混合计算的长度也有差别,据我目前测试 25 个中文字符是能够的。心愿官网能给出具体的字符长度限度的明确数字。

如果调用下发的次数大于用户的订阅次数,调用接口下发订阅音讯会返回失败。报如下谬误

3. 订阅音讯参数值内容限度阐明

符号示意除中文、英文、数字外的常见符号,不能带有换行等控制字符。工夫格局反对 HH:MM:SS 或者 HH:MM。日期蕴含年月日,为 y 年 m 月 d 日,y 年 m 月、m 月 d 日格局,或者用‘-’、‘/’、‘.’符号连贯,如 2018-01-01,2018/01/01,2018.01.01,2018-01,01-01。每个模板参数都会以类型为前缀,例如第一个数字模板参数为 number01.DATA,第二个为 number02.DATA

例如,模板的内容为:

` 姓名: {{name01.DATA}}
金额: {{amount01.DATA}}
行程: {{thing01.DATA}}
日期: {{date01.DATA}}`

则对应的 json 为

`{
“touser”: “OPENID”,
“template_id”: “TEMPLATE_ID”,
“page”: “index”,
“data”: {
“name01”: {
“value”: “ 某某 ”
},
“amount01”: {
“value”: “¥100”
},
“thing01”: {
“value”: “ 广州至北京 ”
} ,
“date01”: {
“value”: “2018-01-01”
}
}
}`

二. 订阅音讯应用心得

1. 订阅音讯尽管把订阅的受权的交给了用户,然而也减少了用户应用难度,同时,一次性订阅只能收到一次,操作起来比拟繁琐,如果不是刚需用户可能会首次就回绝了这个服务,要想从新获取受权,须要用户本人关上小程序设置里去配置,颇为麻烦,小程序没有提供更简便的办法去唤起。

2. 小程序的服务商为了取得更多给用户发送订阅音讯的次数,必定会千方百计去埋点诱惑用户去点击订阅,这种诱导预计也是违规。

3. 用户应用门槛和学习比拟高,比方某个预约的服务,原来的场景是用户只有有提交表单,小程序就能够推送音讯给用户,然而当初须要用户被动去订阅,无形中多了一步,如果用户不相熟订阅音讯或者间接点了“勾销”,小程序就没法告诉到用户了,用户可能因而错失服务,对商家和用户都是损失。

4. 微信小程序将采纳订阅音讯,并逐渐勾销模板音讯,尽管微信官网试图在不便用户和不打搅用户这两种抉择里去寻求均衡,但订阅音讯目前的模式恐怕无奈达到这个冀望,至多在我看来,无论对小程序的服务商,还是小程序的用户,都感到不不便。

原文链接:https://www.watch-life.net/wechat/subscribe-message.html

正文完
 0