消息能力是小程序能力中的重要组成部分,微信官方提供了订阅消息能力,以便实现开发者实现服务的闭环和更优的体验。可以支持在用户自主订阅后,推送消息到用户端(服务通知),用户点击查看详情可跳转至小程序的页面,实现服务的闭环,提高活跃度和用户粘性
本次课程会演示如何使用云开发快速为小程序加入订阅消息能力,在实战环节会带领大家搭建一个具备用户订阅、消息去重、定时发送、用户退订等订阅消息管理能力的开课提醒小程序,学习完成后同学们将掌握:
- 云调用调用微信开放能力相比传统模式有哪些优点
- 如何基于云开发快速接入小程序订阅消息
- 如何结合云开发的云函数、定时触发器、数据库和云调用开发完整的功能
基础知识点
小程序·云开发介绍
“小程序·云开发”由微信团队和腾讯云联合打造的“应用服务中台”,秉承高效、易用、安全、低成本的服务理念,整合了微信公众平台和腾讯云的核心技术,提供云数据库、云存储、云函数、日志和监控等开发运维能力。通过“小程序·云开发”,开发者可无缝安全调用小程序的开放服务,提升开发效率,快速试错和落地产品。
订阅消息介绍
微信官方提供了订阅消息能力,以便实现开发者实现服务的闭环和更优的体验。可以支持在用户自主订阅后,推送消息到用户端(服务通知),用户点击查看详情可跳转至小程序的页面,实现服务的闭环,提高活跃度和用户粘性
准备工作
准备小程序账号和开发工具
温馨提示:本次的实战的案例里用到了**“订阅课程开课提醒”** 这个订阅消息模板,需要小程序服务类目里包含 “教育 > 在线教育”,可以在服务类目中加入此类目。后续生产环境中可根据自己的场景选择合适的服务类目和订阅消息模板。
-
已经申请微信小程序(在服务类目中加入**“教育 > 在线教育”**),获取小程序 AppID
-
下载 开发版 微信开发者工具( Nightly Build (Windows 64、Windows 32、macOS))
-
在微信公共平台的 "订阅消息"中申请一个开课提醒订阅消息模板,获得消息模板ID,字段的内容和顺序需要按下图所示:
下载并导入初始项目的源代码
此次活动的项目源代码压缩包可关注公众号 [微信极客WeGeek] 回复"订阅消息"获得。解压源代码压缩包后,可以看到 “第六期课程资料”⽂件夹下有两个⽂件夹,分别为 init(此次活动的实战初始代码)和 intact(完成后的完整代码)。
点击开发者工具工具栏项目-导入项目,项目名称可以任意填写比如“小程序订阅消息系统”,项目路径为之前解压出来的 “第六期课程资料”文件夹里面的 init 文件夹,AppID 使用之前准备好的小程序 AppID。
配置项目
- 打开云开发控制台,在数据库管理页新建⼀个
messages
集合。 - 修改
pages/index/index
里面的 lessonTmplId 变量的值为准备好的消息模板ID
了解本次实战的整体流程图
搭建步骤
小程序前端实现订阅和退订交互
打开 miniprogram/pages/index/index.js
,在“@todo 实现订阅逻辑” 下方粘贴如下代码:
// 获取课程信息
const item = e.currentTarget.dataset.item;
// 调用微信 API 申请发送订阅消息
wx.requestSubscribeMessage({
// 传入订阅消息的模板id,模板 id 可在小程序管理后台申请
tmplIds: [lessonTmplId],
success(res) {
// 申请订阅成功
if (res.errMsg === 'requestSubscribeMessage:ok') {
// 这里将订阅的课程信息调用云函数存入db
wx.cloud
.callFunction({
name: 'subscribe',
data: {