开门见山地说,最近刚刚研究完微信小程序的消息订阅功能,踩了不少坑,也总结了一些心得,想着分享一下,帮大家避避坑。
首先我先贴一下官方的文档地址,毕竟无论怎样一切都是以官方文档为准,其次小程序的更新迭代很频繁,我也不知道等各位看到我这篇文章的时候,我下文的这些内容还有没有用,官方文档:小程序订阅消息。
然后简单来介绍下小程序的消息订阅功能,这个功能顾名思义就是给用户发送消息的。这个功能的前身是发送模板消息,但在2020年1月份后小程序官方停止了发送模板消息的功能,替代品就是现在的消息订阅功能,两者最大的区别就在于现在的消息订阅是需要用户授权同意接收消息,才能把消息发到用户的微信上,否则用户是不会接收消息的。实现出来的效果相信大家在生活中都有接触过,我就挂两张图片简述下实现该功能的方法。
首先小程序端一定会有一个弹框提示,让用户选择是否接收消息,这个弹框是需要和按钮的点击事件绑定的,实现的方法可以参考官方文档:调起客户端小程序订阅消息界面,代码量也不大,就是调用个方法而已,实现的方法里面说到需要模板ID,这个会在下文里面再详细介绍。实现的效果见下图
用户如果允许同意了,那接下来肯定是需要触发发送消息的方法,把我们需求定义好的消息发送给用户,这部分代码也不多,官方的文档在这:调用接口下发订阅消息,也是会去请求小程序官方的一个接口地址,实现的效果如下,用户就会在微信里收到个服务通知的提示。
经过上面两步以后,就完成了小程序给用户推送消息的流程了。是不是很简单,也没啥坑啊,别急,还记得我上文说到要用到的模板ID吗,这东西才是关键。在微信的官方文档里,把获取模板ID放在了开发的第一步,但是为什么我现在才讲呢,因为关键的坑都在这里面。
在讲这个之前,还得普及点小知识是关于一次性订阅和长期订阅的,文档里的介绍已经很明确了。
看过这个介绍以后,相信大家的想法都是,长期订阅这么好,我直接用长期订阅不就好了,一次性订阅要它干啥,还只能发一次。但是,长期订阅并没有那么容易获得,关于长期订阅如何获取我将在下面和获取模板id一起讲。
全文的关键来了
我们要想获取模板id,第一步要登录公众平台,地址:微信公众平台
扫码登录进去,进入自己管理的小程序,在左侧菜单栏,找到”功能—》订阅消息“
点进去后会有个开通订阅消息,这个时候直接点开通的话,会提示你先要选择小程序的类目,小程序的类目在哪里配置呢,在设置—》基础设置里面就有类目的配置,点进去以后可以配置自己的小程序属于哪类。这个时候重点来了,还记得刚刚长期订阅里面的条件吗
也就是说只有这些类目下的部分二级类目(是部分二级类目,文档里说的是一级类目,配类目的时候要精确到二级类目),才能支持长期订阅,其他类目全部是一次性订阅。然后关键来了,小程序官方不会明确告诉你,具体哪些可以支持长期订阅,只有你自己的小程序真的属于他们认为的可以长期订阅的类目里, 你才能进行长期订阅。而且你还不能乱配置类目,因为每个月改类目是有次数限制的,而且部分类目的选择还需要提供证明材料的。虽然官方说后期会支持其他服务业务,但截止本文发布(2021年9月1日),并没有增加其他服务业务。
虽然对长期订阅的限制并没有放的很开,但如果不是这些类目下的小程序也不是完全没有机会使用长期订阅。还有一种方法是到微信社区向官方人员申请,让自己的小程序可以使用长期订阅,具体方法可以看这篇内容:长期订阅模板库中没有模板也不让申请模板怎么弄?,可以看看评论区的内容,用评论区里的申请模板,在申请开个帖子,然后随缘等待官方人员看到后审核即可,通过的话就能使用长期订阅了。
再回到刚刚订阅消息的菜单栏里,当你完成类目的认证后,你就可以选择开启消息订阅了,进去后的界面如下图(我已经配置了一个模板,正常我的模板这个页签是空的)
如果想要配置消息的话就要进入公共模板库里选择
如果你的小程序不支持长期订阅的话,长期订阅里面的模板会是空的,如果支持的话长期订阅页签里面就会有模板
在这里再帮大家避个小坑,因为这些消息都是模板型的,所以肯定会出现开发者觉得这些模板都不适合自己开发需求的,小程序官方是有明确说明当提供的模板都不满意时,开发者是可以申请新模板的,但是在哪里申请呢?官方把申请的入口放在了模板最后一页的最下面,见下图。意思就是你翻完了这些模板觉得都不满意,那你就申请新的吧。
审核结果会在上方审核记录页签里面看到。我们配置完以后,会在我的模板页签显示选中的模板,每个模板会有自己的模板id,我们只需要复制模板id,然后在代码里面粘贴(支持多个模板一起使用)就可以正常使用这个模板了。这样,我们一套完整的小程序消息订阅的功能就实现完成了。
最后总结一下,小程序实现消息订阅的代码并不多,也不难理解,只是在配置消息的模板时有些许的麻烦,会费点时间。希望这篇文章能够帮助到大家,也欢迎各位开发者评判指正。
微信小程序实现消息订阅(一次性订阅和长期订阅)
版权声明:本文为weixin_38611617原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。