卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
首页 › 技术 › 小程序云开发实现订阅消息推送!
小程序

小程序云开发实现订阅消息推送!

坚果大叔
2021-08-05 16:02:51技术阅读 3,800

遇到一个场景就是用户留言后博主对该留言进行回复后可以通过微信订阅消息的方式第一时间通知用户,并且提供直接跳转到改篇留言的页面!

官方描述:消息能力是小程序能力中的重要组成,我们为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。

订阅消息推送位置:服务通知
订阅消息下发条件:用户自主订阅
订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面

在小程序后台申请订阅消息模板,并选择相应的通知类目和包含的字段。并记住其模板ID,这个很重要。

小程序云开发实现订阅消息推送!-卖坚果的怪叔叔

本次是利用小程序的云函数来实现订阅消息的下发,这样做的好处就是免鉴权接收消息推送。

想要实现消息订阅主要涉及到微信的两个方法:

// 订阅消息
wx.requestSubscribeMessage()

// 发送消息
wx.subscribeMessage()

订阅消息

订阅消息的规则是,用户必须通过按钮主动订阅才能下发订阅消息。所以我们在用户留言进行回复确认的时候,进行授权提示。

<button type="primary" formType="submit" plain="true" bindtap="subMessage">提交留言</button>

wx.requestSubscribeMessage({
  tmplIds: [tempId], 
  // tempId就是上面后台生成的模板ID
  success: res => {
    if(res[tempId] == "accept") {
     // 'accept'表示用户同意订阅该条id对应的模板消息,
     // 'reject'表示用户拒绝订阅该条id对应的模板消
      wx.showToast({
        title: "留言成功",
        icon: "success",
        success: sub => {
          this.setData({
            textValue: "",
            show: false
          });
          this.getData();
        }
      })
    }

  }
})

实际场景的效果

小程序云开发实现订阅消息推送!-卖坚果的怪叔叔
点击允许之后,就可以通过云函数进行下发消息。如果用户不勾选下面的【总是保持以上选择,不在询问】那么每次回复的时候都会进项授权提示,因为微信规则,订阅一次才能下发一次,订阅多次可以下发多次。如果用户勾选上了,那么可以进行兼容通过wx.getSetting来查询用户是否已经有订阅状态。

wx.getSetting({
    // 获取用户订阅消息的订阅状态
    withSubscriptions: true, 
    success(res => {
        // subscriptionsSetting 返回 true则已订阅
        res.subscriptionsSetting = {
            mainSwitch: true
        }
    }),
    fail(err=> {})
});

发送消息

新建一个云函数,并进行初始化。

// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init()

// 云函数入口函数
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.subscribeMessage.send({
      touser: event.userId,
      page: event.page,
      lang: 'zh_CN',
      data: event.data,
      templateId: event.templateId,
    })
    return result
  } catch (err) {
    return err
  }
}

注意点:

云函数中的data里面的数据name和顺序必须和模板消息里面的数据name顺序一样。否则可能造成订阅消息不生效。

// 订阅消息推送data数据

const item = {
    thing1: {
        value: this.data.liveInfo.articleTitle
    },
    name2: {
        value: this.data.liveInfo.accountName
    },
    thing3: {
        value: e.detail.value.msgInput
    },
    time4: {
        value: this.getNowTime()
    }
}

最终效果:

小程序云开发实现订阅消息推送!-卖坚果的怪叔叔

点击跳转

小程序云开发实现订阅消息推送!-卖坚果的怪叔叔

小程序 小程序·云开发
赞赏 赞(3)
本文系作者 @坚果大叔 原创发布在 卖坚果的怪叔叔。未经许可,禁止转载。
超简单!两步实现Wordpress评论微信通知~
上一篇
测试GiF
下一篇
在小程序中查看

这是个😊,挣点服务器费用😜

评论已关闭

热门文章
H5在safari上fixed不触底bug?
周末,去太湖。
重学JavaScript之基本概念(上) => 数据类型
PC微信多开和防撤回~
初冬!暖日!东太湖慢行!
常见的CSS文字居中显示
专题标签
CSS (15) dom (1) Es6入门系列 (14) Git (3) html (1) iview (1) JavaScript (9) js (4) Lif (1) Node (4) pyecharts (1) Python (10) ref (1) scriptable (1) Skill (1) vsCode (1) vue (4) wordpress (2) 三月 (1) 上海 (1) 其他分享 (3) 前端两三问 (15) 古镇 (1) 外滩 (1) 对象 (1) 小程序 (5) 年度总结 (6) 年终总结 (1) 微信机器人 (4) 微信相关技巧 (1) 打字机 (1) 技术 (1) 日常问题 (8) 日常问题记录 (1) 春天 (2) 服务器 (2) 油菜花 (1) 海族馆 (1) 生活 (8) 网上国网 (1) 记录 (3) 通勤 (1) 重学JavaScript (11) 面试题 (10) 🌸 (1)
什么是 Skill?
2026-08-12 21:32:42
156 1 0
失业在家,我给小朋友做了一个练字小程序!
2026-08-07 16:21:52
386 8 1
上线8年,15万用户的小程序,一共赚了多少钱?
2026-05-30 18:01:24
4,557 4 0
WordPress评论留言通知推送插件!
2025-12-13 17:22:36
3,664 3
3
  • 3
博主

一位佛系的前端开发者,略通摄影,乐于尝试新事物,热衷于美食。

友链
故事胶片
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔 Dacking
Copyright © 2017-2026 卖坚果的怪叔叔

开往-友链接力

萌ICP备20230818号

苏ICP备18048410号-3
  • 首页
  • 生活
  • 技术
  • 记录
  • 工具箱
  • 关于我
# CSS # # JavaScript # # vue # # 微信 # # 生活 #
坚果大叔
344
文章
170
评论
430
喜欢