云开发实战:实现订阅消息推送
发布于 4 年前 作者 kongjuan 2771 次浏览 来自 分享

前言

最近在研究一个抽奖小程序,使用过抽奖小程序的同学都知道,在小程序开奖都时候都会有一个提醒让用户点击查看结果。查看结果后不管是否中奖,还会引导用户去抽其他的奖品,这一招可谓是一石二鸟,活跃和留存都做到了。

效果

步骤

想要实现发送模版消息有以下步骤:

  1. 管理后台申请模版
  2. 获取用户推送授权
  3. 进行推送订阅消息

实现

管理后台申请模版

进入后台选择订阅消息菜单,点击添加按钮

搜索关键词,选中你需要的模版

可自定义顺序和勾选需要的字段

选中成功后

在这里我们可以获取到【模板ID】,这个在授权的时候需要用到。

获取用户推送授权

在一个关键环节获取授权,比如我的抽奖小程序就是在点击抽奖按钮时获取的。

// 用户点击抽奖
lottery: function () {
    let that = this
    wx.requestSubscribeMessage({
      tmplIds: ['模版ID'],
      success(res) {
        console.log(res);
        that.onParticipate();
      },
      fail(err) {
        console.log(err);
        that.onParticipate();
      }
    })

用户同意一次授权就可以发起一次消息,这个是累计和消耗的。

进行推送订阅消息

云开发发送代码

const sendMessageRes = await cloud.openapi.subscribeMessage.send({
            touser: subscribe.openid,
            page: '/pages/index/index?lotteryId=' + subscribe.lotteryId,
            lang: 'zh_CN',
            data: {
              thing4: {
                value: subscribe.rewards.map(reward => reward.name + '×' + reward.winners).join(";")
              },
              time3: {
                value: subscribe.endTime
              },
              thing2: {
                value: '您参加的抽奖正在开奖,点击查看'
              }
            },
            templateId: subscribe.subscribeId,
            miniprogramState: 'developer'
            // miniprogramState: 'trial'
            // miniprogramState: 'formal'
          });

发送参数详细可见:官方文档
在这里需要注意就是data的参数需要对应上模版详细,如上面代码中的thing4,time3,thing2 需要对应。

总结

善用订阅消息可以让你的用户获得很好的体验同时又能留存。如果你觉得这个推送次数不太够的话,推荐使用引导用户关注服务号可以通过推送接口无限给用户推送小卡片。

1 回复

楼主是怎么实现同时推送多人的

回到顶部