1.前言
2.只有光头才能变强。
3.文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y
4.如果近期有看我文章的同学,会知道我最近在公司做的是推送系统。推送系统在我这也叫做消息管理平台,其实很容易理解:提供一个支持多渠道发送消息的系统。
推送系统支持的渠道5.在前段时间,微信公布:小程序模板消息接口将于2020年1月10日下线,开发者可使用订阅消息功能。
6.底层接口的变动,对程序员来说意味着什么,你懂的。
7.人在家中坐,班从天上来
8.本篇文章主要来聊聊我这边是怎么发送小程序消息的,以及改版后的简单介绍,希望对大家有帮助。
9.本文不涉及任何的高深知识,放心观看。
一、前置知识10.发送小程序消息其实很简单,微信提供了微信官方文档供我们开发者去查阅相关的基础知识,提供HTTP接口给我们去方便调用:
微信文档11.对开发者来说,发送小程序消息总结来说就三步:
12.在微信后台创建模板
13.获取下发的权限
14.调用发送接口,发送消息
15.无论是以前的模板消息,还是现在新的订阅消息,步骤都是一样的。
二、模板消息和订阅消息的区别16.为什么微信要把模板消息下线,要上线订阅消息呢?我们从发送小程序的步骤来看,只有“获取下发的权限”是可动的,其余的两步都是相同的。
17.我们开发者要借助微信平台向用户发消息,需要一个理由(下发的权限)。因为微信还是注重用户体验的。
2.1模板消息18.模板消息下发的理由是:用户最近在小程序活跃过,有过交互的行为(比如说表单提交)。那么开发者可以从这些交互行为中收集formId。
19.一条formId会保留7天,当我们调用发送接口的时候需要消耗一条formId。如果该用户没有formId的话,那么我们则会发送失败
20.重点:发送模板消息一定要携带formId
21.说白了,这个formId就是用户与小程序的交互凭证。微信认为:用户最近使用过你的小程序,你才可以给他/她发送消息。
2.2订阅消息22.从模板消息的下发理由我们可以发现:下发的权利是掌握在我们开发者手上的,只要我们通过用户的各种行为收集到大量的formId,那我们在7天内就可以发送多条消息给到用户。
23.订阅消息的下发理由是:把消息是否推送的权利还给用户。用户来决定能不能收到推送,简单来说就是:
24.当用户触发某些场景时,给用户弹框,让用户决定是否收到推送(而且只会收到一次)
示例2.3让用户收到自己想要的消息25.在最开始使用微信的时候,你可能还能收到一些营销类的小程序通知,但近期你应该就收不到的。
26.不允许恶意诱导用户进行触发操作,以达到可向用户下发模板目的
27.不允许恶意骚扰,下发对用户造成骚扰的模板
28.不允许恶意营销,下发营销目的模板
29.标题不能涉及营销相关内容,包括不限于:消费优惠类、购物返利类、商品更新类、优惠券类、代金券类、红包类、会员卡类、积分类、活动类等营销倾向通知
30.微信会检测你的模板有无问题,如果有问题就会把你的模板给删掉(当然了,也不让你创建可能是营销类的模板)。没有了模板,消费就发不出去了。
31.总的来说:微信会通过各种方式来限制你的消息下发,目的是想让用户收到他自己想要的消息。这次将模板消息改成订阅消息,更是把下发消息的权限交给用户了。
32.至于这件是好事,还是坏事。不同人有不同的看法。
33.有的人会觉得:让用户选择是否收到消息,用户所需要的操作就多了,弹窗也是对用户的一种打扰。如果用户不熟悉订阅消息或者直接点了“取消”,小程序就没法通知到用户了,用户可能因此错失服务,对商家和用户都是损失。
34.有的人也会觉得:把推送消息的权利掌握在用户手里,能很大程度上避免商家的恶意骚扰
35.对于此次的改版,可以在评论区下谈谈你的看法~
三、我们是怎么做的?36.我这边来简单说一下我这边是怎么接入推送小程序消息的,希望对想要接入小程序消息的同学有一定的帮助。
37.首先,针对在微信后台创建的模板,我们是先把微信后台的模板拉取到自己的数据库保存起来,然后再做一个管理页面对模板进行管理。
后台管理页面38.如果某个消息使用到了该模板,我们同样也会做关联起来(因为这样可以方便查阅哪些消息使用了这个模板)
39.正因为有了这个功能,所以我们这次迁移就可以很方便整理出目前还在使用的模板有哪些,使用的场景在哪。后续只要将消息的模板ID改成订阅消息的模板ID就好了。
将模板同步到自己的数据库40.像我司不单单只有一个小程序,所以要对小程序进行分类,这里就不再赘述了。实际上就是封装了一层,例如:蘑菇街女装标识为88,蘑菇街直播购物台标识为99
41.在设计和写代码的时候要考虑后续的可扩展性
42.在模板消息的时候,前端会打formId的点,我这边会在Storm将MQ的数据清洗放到Redis里边。然后我这边在发送之前就判断用户有没有对应的formId。
formId流程43.现在微信将模板消息改为订阅消息,formId的收集到我这边的Storm解析进Redis的操作都免去了。微信貌似也没有提供接口给我判断用户是否有授权过。所以我只能在调用下发接口时,根据返回值来判断用户是否授权。
44.如果新接入微信小程序消息的同学,那整块流程就简单很多了。
45.前端同学只要在必要的场景下弹窗,让用户授权
46.后端的同学直接下发到用户,根据返回值判断下发的情况。
47.所以,现在我这边如果要下发一条消息主要有两个步骤:
48.在推送后台新建一条消息(选择微信的模板、消息创建者的基本信息、消息相关的规则处理(是否去重等等)
49.业务方调用我暴露的接口
50.业务方调用我这边的暴露接口,我主要做以下的事情:
51.对业务方的传入参数进行简单的校验,拼接成完整的一个模板消息内容
52.如果业务方传入的是userId,我这边需要转为openId
53.对消息速度限流,调用微信的下发接口
流程54.除了消息下发以后,我们还会考虑到消息下发是否成功以及效果的问题(有无实时数据供查看,有无离线报表分析),所以我这边是这样做的:
55.在关键的链路上进行打点
56.业务方调用我接口,我已经确认收到消息了
57.这条消息由于业务原因被过滤掉了(可能是userId转openId失败了)
58.在下发时可能由于模板/token/用户无授权等等情况
59.将打点的信息写到Kafka,再由Storm清洗,实时的查询的进Redis,离线的落到Hive表
60.这里的打点实际上就是我们打日志
报表or查询消息发送状态61.比如下面是我实时推送后,根据userId查询推送的情况:
实时查看消息的发送情况最后62.总的来说,小程序推送消息并不难,也仅仅是几个接口而已。现在改版为订阅消息后,那接入起来就更加方便了。再过一个月,你们使用小程序的时候可能就会收到各种的弹窗提醒你们是否要授权xxx模板消息。
63.不知道大家看完我这篇文章有什么看法,欢迎在评论区留言。我会经常分享我在工作中遇到的问题以及学习后精心整理后的笔记,希望对大家有所帮助,觉得我的文章还有点东西,不妨关注我!
欢迎加入交流群学习,备注加群说实话在这个群,哪怕您不说话,光看聊天记录,都能学到东西推荐阿里云推广服务器89/年,229/3年,买来送自己,送女朋友马上过年再合适不过了,买了搭建个项目给面试官看也香,还可以熟悉技术栈,(老用户用家人账号买就好了,我用我女朋友的????)。扫码购买我这里还有一个:搭建教程,从0开始一步一步带你搭建
人在家中坐班从天上来「小程序推送」-小程序收录排名不好-小程序优化排名
浏览量:2220
时间:
来源:Java3y
版权声明
即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。
最新资讯
-

即速应用,赋能企业玩转微信小程序智慧经营
作为国内领军的智慧商业经营服务商,即速应用始终秉承“让每个企业都拥有自己的智慧店铺”的愿景,持续赋能更多企业玩转智慧经营。即速应用旗下拥有“小程序搭建工具-即速应用”、“私域流量专家-即客云”等产品,帮助商家打通互联网全生态营销闭环。 -

即客云2.0重磅更新,让微信小程序运营更简单!
即客云作为一款基于企业微信的第三方工具,现从多维度提供超过30种功能,自上线以来,已服务多家企业,受到一致好评。近期,我们根据客户反馈和市场调研正式推出升级版 即客云2.0!更新了私域运营SOP,群日历功能,批量拓客,客户雷达,消息推送,个人欢迎语,帮助企业更好运用企业微信;同时提升了社群运营工作标准化,提升运营效率,帮助企业实现客户增长,玩转私域流量。 -

零代码 + AI 双轮驱动|即速应用解锁人工智能小程序开发新范式
无需代码、无需 AI 算法功底,普通人也能快速搭建智能小程序。即速应用将人工智能与零代码开发深度融合,推出 AI 智能生成能力,用户通过自然语言描述需求,AI 自动生成小程序页面、功能模块与后台配置,覆盖商城、预约、同城、社区团购等全场景。平台内置 AI 智能推荐、智能客服、用户画像分析等能力,一键对接微信生态,打通视频号、企业微信、短信跳转,帮企业快速落地 AI 应用,抢占智慧经营先机,让每家企业都拥有 AI 驱动的智慧店铺。










