微信小程序订阅消息:用云服务编写订阅消息超详细描述

简介: 微信小程序订阅消息:用云服务编写订阅消息超详细描述

一.什么是订阅消息

微信里有一个服务通知,我们经常收到的各种消息,就是通过订阅消息进行发送的,订阅消息分为二种:
在这里插入图片描述

进一步了解跳转到官方文档中去学习吧官方解释

二.在小程序中使用订阅消息

业务:用户点击按钮,我们返回用户如下信息:
在这里插入图片描述

2.1第一步:创建模板

1.进入到小程序官网首页,点击订阅消息
在这里插入图片描述
公共模板>任务模板>选择红框框里的哪一个>选用
在这里插入图片描述
选择参数,下面的场景说明也要填写,然后提交
在这里插入图片描述
注意模板ID是一个很重要的参数,点击详情
在这里插入图片描述
进行详情页面,记住thing1和thing2参数【模板不一样参数名也不一样】
在这里插入图片描述

2.2 第二步:创建云服务

由于我已经创建过云服务的环境了,这里可能有点不一样但是,大概过程差不多
进行微信小程序开发工具里>云开发
在这里插入图片描述
编写环境名称,和支付方式

在这里插入图片描述
这里注意一下按量收费,我使用的是预付费,用的免费套餐,但是免费套餐现在一天可访问人数为500有点坑:
在这里插入图片描述
在这里插入图片描述
找到自己的环境ID
在这里插入图片描述

2.3 第三步:云服务项目配置

第一个app.js中进行配置

//云数据
wx.cloud.init({
  env:"你的环境ID"
})

在这里插入图片描述
然后创建红框框里的三个文件

在这里插入图片描述
第一个文件创建方式为,箭头指向的文件夹,点击创建文件夹名为cloud
在这里插入图片描述
另外二个创建方式如下:文件名分别对应:getopenid,sendmessage
在这里插入图片描述

getopenid里面关心红框框里的即可:
在这里插入图片描述
,这里的DYNAMIC_CURRENT_ENV其实就是环境id只是动态的获取环境Id
在这里插入图片描述
getopenid文件就是获取openid,这个openid可以理解为用户家的地址,我要给用户发消息肯定要知道该用户家在哪里吧
在这里插入图片描述


index.js内容如下:

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

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext()

  return {
    event,
    openid: wxContext.OPENID,
    appid: wxContext.APPID,
    unionid: wxContext.UNIONID,
  }
}

在这里插入图片描述


sendmessage里,主要关心红框框里的内容:
在这里插入图片描述

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

cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})

// 云函数入口函数
exports.main = async (event, context) => {
  try{
    let  tmplId='模板ID'
    let index='pages/index/index'
    const result = await cloud.openapi.subscribeMessage.send({
       touser: event.openId,
       page: index,
       data: {
          thing1: {
            value:event.thing1
        },
        thing2: {
          value:event.thing2
        }
      },
      templateId: 模板ID
    })
  return result
  }catch(err){
    console.log(err)
      return err
  }

}

在这里插入图片描述
在这里插入图片描述
里面的参数一定要填对!

上面的配置完了就上传到云服务中去!
在这里插入图片描述
部署完之后就是通过云服务进行查看是否上传成功!
在这里插入图片描述

2.3 第三步:项目使用订阅消息

在utils中创建一个messagepush.js文件
在这里插入图片描述
这里的send就是用来发送消息的函数,实现方式就三步

  • 进行授权
  • 获取openid
  • 进行发送

具体操作看源码,解释查找官方文档:

function send(thing1,thing2){
  //【1】进行授权
  let  tmplId='Xl-JeelQZqmAWcUy9VlyDc7eWy2HoPTdenK4pbr1V4w'
  wx.requestSubscribeMessage({
    tmplIds: [tmplId],
    success (res) { 
      console.log('授权成功',res)
      //【2】获取openid
      wx.cloud.callFunction({
        name:'getopenid'
      }).then(res=>{
        //【3】进行发送
        wx.cloud.callFunction({
          name:'sendmessage',
          data:{
            openId:res.result.openid,
            thing1:thing1,
            thing2:thing2
          }
        }).then(res=>{
        console.log('发送成功',res)
        }).catch(res=>{
        console.log('发送失败',res)
        }) 
      }).catch(res=>{
        console.log("获取失败",res)
      })
    },fail(res){
      console.log('授权失败',res)
    }
  })

}


module.exports = {
  send: send
}

小程序中创建一个buttion的按钮:
在点击事件中,调用send方法进行发送消息即可
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
最后运行效果:
在这里插入图片描述

相关文章
|
7月前
|
小程序 API
培训报名小程序-订阅消息发送
培训报名小程序-订阅消息发送
|
小程序 Java Maven
小程序订阅消息推送工具类
小程序订阅消息推送工具类
154 0
|
7月前
|
JSON 小程序 JavaScript
简单描述下微信小程序的目录结构
简单描述下微信小程序的目录结构
|
4月前
|
存储 小程序 数据可视化
小程序开发问题之使用小程序云服务开发个人相册小程序如何解决
小程序开发问题之使用小程序云服务开发个人相册小程序如何解决
|
5月前
|
运维 小程序 前端开发
好的商业模式-----小程序定制资料,加一张好看的海报,在推广中就可以找到用户中了,云服务部署收5000,部署是一种服务,定制化,游戏开发创者,仲裁劳务会剪视频好,提供服务,想增加一些新功能收费,会说
好的商业模式-----小程序定制资料,加一张好看的海报,在推广中就可以找到用户中了,云服务部署收5000,部署是一种服务,定制化,游戏开发创者,仲裁劳务会剪视频好,提供服务,想增加一些新功能收费,会说
|
5月前
|
存储 小程序 数据库
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
【微信小程序-原生开发】实用教程08 - 开通微信云开发,操作云数据库新增数据(含修改数据权限),初始化云服务(含获取微信云环境 id),获取云数据,滚动公告栏
79 0
|
7月前
|
小程序 前端开发 IDE
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
738 7
|
7月前
|
小程序
简单描述下微信小程序的目录结构?
简单描述下微信小程序的目录结构?
|
7月前
|
JSON 小程序 前端开发
简单描述下微信小程序的相关文件以及类型?
简单描述下微信小程序的相关文件以及类型?
135 1
|
7月前
|
开发框架 小程序 JavaScript
简单描述下微信小程序的相关文件类型以及微信小程序和uniapp的区别?
简单描述下微信小程序的相关文件类型以及微信小程序和uniapp的区别?
78 0