您当前的位置:首页 > 电脑百科 > 程序开发 > 移动端 > 小程序

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

时间:2022-03-01 15:53:11  来源:  作者:编程小石头

我在云开发基础课程里给大家讲过小程序消息推送功能的实现,等下会给大家回顾下。但是有时候我们如果想实现定时推送的功能该怎么做呢

一,普通订阅消息的发送

我们先来看下订阅消息的官方简介。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


接下来我们就来借助云开发,来快速实现小程序消息推送的功能。

1-1,获取模板 ID

这一步和我们之前的模板消息推送是一样的,也是先添加模板,然后拿到模板id

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


首先是开通订阅消息功能,很简单,如下图

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

由于长期性订阅消息,目前仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。仅就线下公共服务这一点,长期性订阅消息就和大部分开发者无缘了。
所以我们这里只能以使用一次性订阅消息为例。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


如上图,我们从公共模板库里选择一个一次性订阅的模板。然后编辑模板如下图

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


下图就是我们添加好的模板,下图的模板id就是我们需要的。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

1-2,请求用户授权

我们做订阅消息授权时,只能是用户点击或者支付完成后才可以调起来授权弹窗,官方是这么要求的:

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


我们这里用到了
wx.requestSubscribeMessage这个方法,来获取用户的授权。

  • 1,编写index.wxml代码
  • 2,编写index.js代码,实现点击获取授权
    这一步tmplIds里的一串字符,就是我们自己添加的模板id
  • 3,点击按钮运行效果如下
    开发者工具模拟器上点击授权弹窗是这样的:手机上的授权弹窗是这样的:可以看到,这里显示的就是我们添加的信息 ‘上课提醒’的模板。细心的同学可以看到, 真机上多了一个 ‘总是保持以上选择,不再询问’其实,你自己仔细品一些。也能明白,我们正常订阅消息授权时,用户允许的话,你只能推送一次消息。也就是用户允许一次,我们就可以推送一条消息给用户,并且这个允许不存在过期。所以我们可以让用户尽量多的点击允许,这样我们就可以尽量多地给用户发送消息了。

这里用户允许后,我们就可以给用户推送消息了,接下来我们来借助云开发的云函数来实现消息推送功能。

1-3,获取用户的opneid

先来看官方爸爸是怎么说的。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


可以看出官方提供了两种方式,我们这里使用云调用。说白了就是在云函数里调用推送功能。

  • 推送所需参数
    可以看到我这里用来openapi功能,并且需要用到用户的opneid,关于openid的获取,我之前有写过文章,也录过视频的。文章的话,大家去翻下我历史的文章,视频的话,点击这个即可:《借助云函数获取用户openid》这里的openid的获取我就不再详细讲解了,把对应云函数的代码给大家贴出来。在使用云开发时,有几点需要注意的
  • 1,需要在project.config.json里创建云函数目录如下图
  • 2,需要在App.js里初始化云开发环境
    至于云开发的环境id从哪里拿,我视频里也讲过很多遍了,直接去看我视频或者翻看我历史文章即可。《零基础入门云开发视频》

1-4,用云函数实现消息推送

我们只需要创建一个云函数如下,然后填入用户的openid,要跳转的小程序页面链接,模板内容,模板id即可。通常这些数据都应该传进来,简单起见,我就把这里的模板内容写成固定的。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

注意:我在编写上面的代码时,推送内容的key必须和小程序模板里的key保持一致,否则就会报如下错误。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

  • 然后看下调用这个云函数的地方
    如果用户没有授权,我们推送会报如下错误如果用户授权过,我们就可以成功推送了,推送后的打印日志如下还记得我们真机上的授权吗,如果用户只是点击了允许,没有选择一直允许,那我我们在推送成功一次后,如果再次推送,就需要用户重新授权。否则,还是会犯这个错误的所以我们用户点击一次允许,我们就可以推送一次消息,比如,我点击了4次允许那么我就可以成功地推送4次

效果图

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


可以看到,我们成功地收到 上课提醒的模板消息,点击进去,就是我们具体的推送内容

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


其实我这是连续收到了4条消息,因为我点击了4次允许推送,所以就可以成功地推送4次。

到这里我们就完整地实现模板消息推送功能了,下面我把主要代码贴给大家,大家也可以私信我获取完整源码。

  • index.wxml
<button bindtap="shouquan" type='primary'>获取订阅消息授权</button>
<button bindtap="getOpenid">获取用户的openid并推送消息</button>
  • index.js
//编程小石头wechat:2501902696
Page({
  //获取授权的点击事件
  shouquan() {
    wx.requestSubscribeMessage({
      tmplIds: ['CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU'], //这里填入我们生成的模板id
      success(res) {
        console.log('授权成功', res)
      },
      fAIl(res) {
        console.log('授权失败', res)
      }
    })
  },
  //获取用户的openid
  getOpenid() {
    wx.cloud.callFunction({
      name: "getopenid"
    }).then(res => {
      let openid = res.result.openid
      console.log("获取openid成功", openid)
      this.send(openid)
    }).catch(res => {
      console.log("获取openid失败", res)
    })
  },
  //发送模板消息到指定用户,推送之前要先获取用户的openid
  send(openid) {
    wx.cloud.callFunction({
      name: "sendMsg",
      data: {
        openid: openid
      }
    }).then(res => {
      console.log("推送消息成功", res)
    }).catch(res => {
      console.log("推送消息失败", res)
    })
  }
})
  • 推送对应的云函数
//编程小石头wechat:2501902696
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async(event, context) => {
  try {
    const result = await cloud.openapi.subscribeMessage.send({
      touser: event.openid, //要推送给那个用户
      page: 'pages/index/index', //要跳转到那个小程序页面
      data: {//推送的内容
        thing1: {
          value: '小程序入门课程'
        },
        thing6: {
          value: '杭州浙江大学'
        },
        thing7: {
          value: '第一章第一节'
        }
      },
      templateId: 'CFeSWarQLMPyPjwmiy6AV4eB-IZcipu48V8bFLkBzTU' //模板id
    })
    console.log(result)
    return result
  } catch (err) {
    console.log(err)
    return err
  }
}

后面我会分享更多小程序相关的知识出来,请持续关注。

注意:授权一次,只能发送一条消息。

二,定时发送消息

我们上面的用户授权和发送消息都需要手动点击才可以实现发送。但是有时候我们需要定时提醒用户,比如做的闹钟小程序,要定时提醒用户,该怎么做呢,接下来我们就来实现定时发送消息的功能。

  • 注意
    当然了这里还是要先授权才可以发送消息的,同样也是授权一次可以发送一条消息,所以这里要尽量先多授权几次

2-1,什么是定时触发器

我们实现定时发送的功能就是要用到云函数里的定时触发器,官方介绍如下。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


大家有时间可以自己去仔细品尝下

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/triggers.html

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


官方已经教我们怎么写定时触发器了

2-2,定时触发器时间设置规则

建议大家仔细去读下官方文档。

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


下面是官方给出的一些示例

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


我这里就取用每隔5秒通过该定时触发器调用下我们的云函数,实现订阅消息的发送。

2-3,添加定时触发器

添加步骤如下图,我们需要新建一个云函数timer

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


我们要在timer云函数里调用我们的fasong云函数来实现发送功能

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

然后在timer文件夹下新建一个config.json文件

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


然后给config.json做如下配置

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


注意json里不能有注释,配置好的触发器如下

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

2-4,部署定时触发器

添加好以后,记得部署触发器

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 

2-5,定时发送效果

首先看定时触发器是不是每隔5秒执行了一次

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


然后看手机是否接到了消息

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


可以看出我们手机上每隔5秒也接到了消息。这里还是要记得多授权才可以多接消息。

当然了,我们不可能这样每隔5秒给客户发条消息,这样骚扰到客户,很容易被封的,所以可以停止触发器

2-6,停止触发器

小程序消息推送,订阅消息的实现,定时推送订阅消息功能

 


到这里我们的定时发送消息功能也实现了,当然了我们要发给指定用户,就要先去获取用户openid,并且得让用户多授权。



Tags:小程序   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  Search: 小程序  点击:(19)  评论:(0)  加入收藏
我们一起解锁小程序开发新姿势
如今,鸿蒙开发日益受到广大开发者的关注,而小程序开发也早已成为互联网领域的热门话题。那么,我们不禁要问:是否有可能将这两者融为一体,将小程序开发的便捷与高效带入鸿蒙生态中...【详细内容】
2024-03-20  Search: 小程序  点击:(20)  评论:(0)  加入收藏
2024年微信小程序分账全攻略:对接流程详解,轻松实现资金分配
在微信小程序运营中,分账功能对于实现多方收益分配、优化资金流转至关重要。那么,微信小程序如何分账?又有哪些对接流程呢?跟着小编去看看吧!一、微信小程序分账概述微信小程序分...【详细内容】
2024-03-15  Search: 小程序  点击:(19)  评论:(0)  加入收藏
微信宣布规范“公众号文章诱骗点击小程序,骗取广告收益”行为
IT之家 3 月 14 日消息,微信公众平台运营中心今日发文称,平台近期发现部分创作者在文章中使用不完全或擦边的标题、擦边的封面和无意义或不完整的内容,并插入诱导性小程序卡片...【详细内容】
2024-03-15  Search: 小程序  点击:(18)  评论:(0)  加入收藏
抖音加大对短剧小程序推荐力度
新腕儿联合鞭牛士报道,2月26日消息,短剧近期数据平稳且持续发展,抖音加强了对短剧抖音小程序的推荐力度。以碧海剧场小程序为例,抖音短剧小程序向用户申请更多「通知信息」权限...【详细内容】
2024-02-26  Search: 小程序  点击:(40)  评论:(0)  加入收藏
一段微信小程序前端与后端连接的代码,带注解
微信小程序的前端和后端连接通常涉及到使用微信小程序提供的网络请求API与后端服务器进行通信。以下是一个简单的示例,展示如何使用微信小程序的前端代码向后端发送请求并处...【详细内容】
2024-01-24  Search: 小程序  点击:(58)  评论:(0)  加入收藏
小程序必须要安装部署SSL证书吗?
自2017年9月21日,微信发布一则《关于公众平台接口不再支持HTTP方式调用的公告》。明确表示,为保证数据传输安全,提高业务安全性,公众平台不再支持HTTP方式调用。应避免影响正常...【详细内容】
2024-01-02  Search: 小程序  点击:(74)  评论:(0)  加入收藏
一文了解什么是微信小程序
如果您无需下载和管理即可获得像原生 iOS 或 Android APP 一样流畅的体验会怎样?腾讯通过微信小程序实现了这一替代方案。一、什么是微信小程序?它们与原生应用程序和 H5 迷你...【详细内容】
2023-12-26  Search: 小程序  点击:(97)  评论:(0)  加入收藏
微信商户号怎么开通?教你申请0.2%费率商户码对接小程序公众号
随着移动互联网的快速发展,电子支付方式已经深入到人们的生活中,而微信支付作为中国领先的移动支付平台,在无数的应用场景中发挥着重要作用。这里先免费分享一个0.2费率的商户...【详细内容】
2023-12-16  Search: 小程序  点击:(64)  评论:(0)  加入收藏
小程序开发需要多少钱?小程序开发的真实成本:报价案例、费用价格表与开发周期解析
分享一个上海客户的微信小程序定制开发的需求,销售课程与相关商品。项目分为后台管理系统和小程序前端,功能不是太复杂,周期大概1个月,费用3万。大家可能比较关心几个地方,比如一...【详细内容】
2023-12-11  Search: 小程序  点击:(119)  评论:(0)  加入收藏
▌简易百科推荐
京东小程序数据中心架构设计与最佳实践
一、京东小程序是什么京东小程序平台能够提供开放、安全的产品,成为品牌开发者链接京东内部核心产品的桥梁,致力于服务每一个信任我们的外部开发者,为不同开发能力的品牌商家提...【详细内容】
2024-03-27  dbaplus社群    Tags:小程序   点击:(19)  评论:(0)  加入收藏
我们一起解锁小程序开发新姿势
如今,鸿蒙开发日益受到广大开发者的关注,而小程序开发也早已成为互联网领域的热门话题。那么,我们不禁要问:是否有可能将这两者融为一体,将小程序开发的便捷与高效带入鸿蒙生态中...【详细内容】
2024-03-20  前端充电宝  微信公众号  Tags:小程序   点击:(20)  评论:(0)  加入收藏
一段微信小程序前端与后端连接的代码,带注解
微信小程序的前端和后端连接通常涉及到使用微信小程序提供的网络请求API与后端服务器进行通信。以下是一个简单的示例,展示如何使用微信小程序的前端代码向后端发送请求并处...【详细内容】
2024-01-24    简易百科  Tags:代码   点击:(58)  评论:(0)  加入收藏
小程序必须要安装部署SSL证书吗?
自2017年9月21日,微信发布一则《关于公众平台接口不再支持HTTP方式调用的公告》。明确表示,为保证数据传输安全,提高业务安全性,公众平台不再支持HTTP方式调用。应避免影响正常...【详细内容】
2024-01-02  云诏    Tags:小程序   点击:(74)  评论:(0)  加入收藏
一文了解什么是微信小程序
如果您无需下载和管理即可获得像原生 iOS 或 Android APP 一样流畅的体验会怎样?腾讯通过微信小程序实现了这一替代方案。一、什么是微信小程序?它们与原生应用程序和 H5 迷你...【详细内容】
2023-12-26  小文智能    Tags:微信小程序   点击:(97)  评论:(0)  加入收藏
小程序开发需要多少钱?小程序开发的真实成本:报价案例、费用价格表与开发周期解析
分享一个上海客户的微信小程序定制开发的需求,销售课程与相关商品。项目分为后台管理系统和小程序前端,功能不是太复杂,周期大概1个月,费用3万。大家可能比较关心几个地方,比如一...【详细内容】
2023-12-11  久码小程序开发  今日头条  Tags:小程序   点击:(119)  评论:(0)  加入收藏
小程序技术分享:安全机制与运行机制
小程序凭借其高曝光率、开发成本低、运行更流畅等优势和特点,一经推出就被广泛使用,面对小程序的火爆,自然而然地,就有很多开发者转战小程序领域,本文主要带大家了解下小程序运行...【详细内容】
2023-12-07  前端实习生Findan    Tags:小程序   点击:(140)  评论:(0)  加入收藏
微信小程序的编译原理
2021年来,随着科技的进步,人们的生活水平也在不断提高。现在,微信小程序已经成为了现代人生活中不可或缺的一部分,它可以帮助我们更方便地查找信息,购物,预订机票和酒店,进行社交等...【详细内容】
2023-12-06  前端实习生Findan    Tags:小程序   点击:(132)  评论:(0)  加入收藏
模板小程序和订制开发小程序的区别?
相比外卖APP,外卖小程序是不用下载到手机的,所以对于用户来说更方便一点。简单方便的程序用户才更愿意使用。现在不少商家越来越重视外卖小程序开发,想通过外卖小程序冲进这片...【详细内容】
2023-11-24  重庆洺宸传媒    Tags:小程序   点击:(236)  评论:(0)  加入收藏
一分钟学会用宝塔面板搭建小程序
宝塔面板搭建小程序怎样用?想要使用宝塔面板搭建小程序?这里是实用教程,帮助您快速上手。在本教程中,我们将扼要了解宝塔面板的基础知识,并一步步演示怎么搭建一个小程序。第一步...【详细内容】
2023-11-15    网络  Tags:小程序   点击:(196)  评论:(0)  加入收藏
站内最新
站内热门
站内头条