模板消息推送,已在2020年1月10日下线,我们根据开发功能需求选择订阅消息功能。
首先先看下小程序开发文档中的订阅消息的介绍,
而现在小程序支持云开发,使用云函数可以免鉴权,可以说是很方便像我这样的小白学习了。
经过几天的研究,可以从demo跑通然后植入到之前的小程序中,相信你在看完这个教程之后也会有所明白。
一、获取消息模板
官方给个人开发开放的是一次性订阅,可以在公共模板库中进行挑选符合自己开发需求的模板。如果需要单独申请模板可以选择申请模板(听说时间比较长,而且可能会被拒)。
上图中的模板id复制到剪切板,之后项目中进行配置。
点开对应模板的详情页进行选择字段和展示顺序。
二、新建工程
打开小程序开发者工具,新建小程序工程。
选择调试基础库为2.8.2版本以上,如果不想切换,那么调试只能拿真机测试,别提多麻烦了。
当然官方也是有这个通知的,看完你就明白上一步的操作原因了。
三、配置项目
空白的项目上,删除不必须的代码,然后对代码的层级进行简单的修改。
1.project.config.json中修改对应的目录结构
2.添加云初始化参数。
点击开发面板-云开发-设置,查看环境设置中环境名称对应的环境ID,复制其填写到下方位置进行初始化。
重要的参数配置完成了,接下来开始书写代码部分。
四、书写代码
1.demo预览
订阅消息的两个点,包括获取订阅消息授权、推送订阅消息。
订阅消息实现的逻辑大致就是用户主动点击进行授权,然后作为小程序的服务端才能给用户进行推送消息,如果未允许授权,服务端无法下发订阅消息。
2.pages/index.wxml
3.pages/index.js
通过页面用户点击获取订阅授权,发起订阅请求,调用js函数,将需要提示的内容在函数中动态的传入到云数据库中(在写作时暂时没实现通过云函数实先存数据,在本地调用却没问题,最后就转变思路实现如此)
在wx.requestSubscribeMessage的成功回调函数,进行存入数据库数据的操作,此时需要注意在函数上方进行数据库的初始化,
const db = wx.cloud.database()
在用户点击允许后,点击发送订阅消息的按钮进行消息推送,点击动作调用sendMsg的js方法。
此时需要借助云函数getopenId和sendMsg,在配置文件config.json中需要添加如下配置。
"permissions": {
"openapi": [
"subscribeMessage.send"
]
},
4.对应云函数sendMsg的代码展示如下,在发送完毕后进行状态的更新。
5.对应云函数sendMsg的代码展示如下(默认创建node.js函数即可实现)
到此实现消息订阅的代码,示例图如下。
五、实现云函数的部署与定时任务
这个功能可以说是很重要的,你单纯实现了点击订阅和发送信息其实并没有什么大的作用。
1.定时器的设置只需要在想要做定时任务的云函数中进行定时器配置即可。
下方的配置是每分钟整点,如果需要定时每天9:10的话,则要配置“0 10 9 * * * *”
"triggers": [
{
"name": "myTimer",
"type": "timer",
"config": "0 * * * * * *"
}
2.上传并部署整个云函数的安装包,优先选择云端安装依赖。
3.上传成功后,右键点击config.json进行上传触发器。
到此配置自动化发送订阅消息的开发配置步骤完成。