• 小程序云开发之订阅消息


    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 可开启用户授权设置
    
    
    
    纯属 原创,   有问题 就联系本人
     



    
    
    
     
    那时候我只有一台录音机也没有电脑 也不敢奢求说唱会让自己的生活变好
  • 相关阅读:
    管理配置KVM,热添加、热迁移
    《google工作整理术》21条原则
    【教你玩转云计算】在阿里云一键安装快速部署Oracle11g 【转】
    Oracle数据库开启归档日志及rman备份情况查询
    【转】CentOS7一键部署OpenStack
    【转】基于openstack安装部署私有云详细图文教程
    Oracle Database 12c数据库中文配置安装图解教程(详细安装步骤)
    精通Linux(第2版) 第3章 设备管理
    精通Linux(第2版) 第2章 基础命令和目录结构
    四种IO 模型
  • 原文地址:https://www.cnblogs.com/520BigBear/p/14610548.html
Copyright © 2020-2023  润新知