微信小程序订阅消息

订阅消息

介绍

微信小程序端的订阅消息主要是用于对用户的消息提醒,如订单提醒,消息提醒等。

官方文档入口

小程序订阅消息

实操

第一步:获取模板ID

  1. 登陆微信小程序后台(微信公众平台

    功能 -> 订阅消息

    在公共模板库找到适合自己的模板

  2. 在我的模板中选择其中一个模板,点击详情

第二步:获取下发权限

  1. 在wxml前端定义一个授权按钮
<button bindtap="test1">订阅消息</button>
  1. 在js里定义触发函数test1
  test1: function () {
    wx.requestSubscribeMessage({
      tmplIds: ['你的模板id'], 
      success(res) {
        console.log(res)
      }
    })
  },
  1. 进入手机进行真机调试

第三步:调用接口下发订阅消息

  1. 在前端定义发送按钮
<button bindtap="test2">发送消息</button>
  1. 云函数

    因为云函数不需要从小程序方获取access_token,因此选择云调用是很好的选

  2. 新建云函数sendWeather

    1. 右键新建note.js云函数

  1. 配置API权限

    在云函数的config.json文件中写入以下代码

    {
      "permissions": {
        "openapi": [
          "subscribeMessage.send"
        ]
      }
    }
    
  2. 编写云函数index.js

    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',
          lang: 'zh_CN',
          data: {
            date1: {
              value: event.date
            },
            phrase3: {
              value: event.weather
            },
            character_string4: {
              value: event.temp
            },
            thing5: {
              value: event.sugg
            }
          },
          templateId: '你的模板id',
          miniprogramState: 'developer'
        })
        console.log(result)
        return result
      } catch (err) {
        console.log(err)
        return err
      }
    }
    
  3. 云函数参数详解

    属性 说明
    touser 接收者(用户)的 openid
    templateId 所需下发的订阅模板id
    page 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(index?foo=bar)
    data 模板内容,注意这部分的内容非常重要
    miniprogramState 跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
    lang 进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN

    注意:data中的内容必须与模板详情中的内容相对应

  4. 云函数调用,在页面的js文件中编写test2触发函数

      test2: function () {
        wx.cloud.callFunction({
    name: 'sendWeather',
          data: {
            openid: app.globalData.openid,
            date: '2019年10月1日',
            weather: '多云',
            temp: '1234',
            sugg: '你好',
          },
          success: res => {
            console.log(res)
          },
          fail: err => {
            console.log(err)
          }
        })
      }
    
  5. 部署到云端

  6. 测试

原文地址:https://www.cnblogs.com/yuyifeng/p/12871137.html