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

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

一.什么是订阅消息

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

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

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

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

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方法进行发送消息即可
在这里插入图片描述
在这里插入图片描述

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

相关文章
|
2月前
|
小程序 API
培训报名小程序-订阅消息发送
培训报名小程序-订阅消息发送
|
8月前
|
小程序 Java Maven
小程序订阅消息推送工具类
小程序订阅消息推送工具类
71 0
|
2月前
|
JSON 小程序 JavaScript
简单描述下微信小程序的目录结构
简单描述下微信小程序的目录结构
|
2月前
|
小程序 前端开发 IDE
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
【经验分享】支付宝小程序订阅消息功能实操(前端篇)|江海计划
292 7
|
2月前
|
小程序
简单描述下微信小程序的目录结构?
简单描述下微信小程序的目录结构?
|
2月前
|
JSON 小程序 前端开发
简单描述下微信小程序的相关文件以及类型?
简单描述下微信小程序的相关文件以及类型?
85 1
|
2月前
|
开发框架 小程序 JavaScript
简单描述下微信小程序的相关文件类型以及微信小程序和uniapp的区别?
简单描述下微信小程序的相关文件类型以及微信小程序和uniapp的区别?
48 0
|
2月前
|
JSON 小程序 前端开发
简单描述下微信小程序的相关文件类型?
简单描述下微信小程序的相关文件类型?
42 0
|
8月前
|
小程序
小程序订阅消息推送简要流程图
小程序订阅消息推送简要流程图
59 0
小程序订阅消息推送简要流程图
|
7月前
|
JSON 小程序 API
小程序(三十四)微信小程序开启订阅消息推送
我这里记录一下我在配置订阅消息推送的时候发生的一些小问题吧,算是经验,给没有做过的同学避个坑。 官方文档地址:小程序订阅消息 | 微信开放文档 (qq.com)
234 0