小程序云开发之订阅消息

demo图:

  

 

简单的功能介绍:  通过订阅消息,  评论后, 对方将在 微信服务通知 收到 (一次性订阅消息;  勾选 总是 将可以发送不止一次)

 一 .实现demo的准备:

1.登录 微信公众平台  https://mp.weixin.qq.com/     开启并且配置订阅消息:

我选的模块,  有这三个 参数 thing1  thing2  time3,   云函数要用到传参

 

 2.创建 云函数

sendMessage.json 中配置 : "permissions"     详见官方文档   云函数声明所需调用的接口:

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html#%E4%B8%80%E3%80%81%E6%9C%8D%E5%8A%A1%E7%AB%AF%E8%B0%83%E7%94%A8

//sendMessage.json

{ "name": "sendMessage", "permissions": { "openapi": [ "openapi.subscribeMessage.send" ] } }

sendMessage.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,//要发送用户的openid
      page: 'pages/base/base', //点击服务通知   ,要填转的页面
      lang: 'zh_CN',
      data: {
        thing1: {
          value: event.name  //自定义的name, words , time
        },
        thing2: {
          value: event.words   
        },
        time3: {
          value: event.time
        }
      },
      templateId: '8xxxxxxxxxxxxxxxx',  //模板id  后台复制粘贴, 或者 调用模板列表获取 , 我这边直接复制粘贴了
      miniprogramState: 'formal'//跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
    })
    return result
  } catch (err) {
    return err
  }
}

index.wxml页面 按钮

<text bindtap="openMsg">消息订阅授权</text>

index.js

// 授权订阅消息按钮
  openMsg(){
    let that = this
    wx.requestSubscribeMessage({
      tmplIds: ['88xxxxxxxxxx模板id']
    }).then(res=>{
      console.log(res, res['8xxxxxxxxxx模板id'])
      if (res['8xxxxxxxxxxxxxxxxxx模板id'] === 'accept') {
        that.setData({
          mainSwitch: true
        })
      } 
    }).catch(err=>{
      console.log(err)

    })
  },

// 发送订阅消息  这个放在 评论回复的函数中 参数自己传
  sendNew(openid,words) {
    let createTime = new Date().getTime()
    console.log(createTime)
    wx.cloud.callFunction({
      name: 'sendMessage',
      data: {
        openid: openid,
        name: app.globalData.userInfo.nickName,
        words: words,
        time: createTime 
      },
      success(res) {
        console.log('发送成功', res);
      },
      fail(res) {
        console.log('发送失败', res);
      }
    })
  },


然后自己到 云控制台  云函数  日志 也能看  打印 或者报错


知识补充:

1.用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改

2. 通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态 https://developers.weixin.qq.com/miniprogram/dev/api/open-api/setting/wx.getSetting.html



3.
wx.openSetting 可开启用户授权设置


纯属 原创,   有问题 就联系本人
 





 
那时候我只有一台录音机也没有电脑 也不敢奢求说唱会让自己的生活变好
原文地址:https://www.cnblogs.com/520BigBear/p/14610548.html