2020年最新最详细的微信小程序订阅消息操作流程步骤及使用方法

2020年最新最详细的微信小程序订阅消息操作流程步骤及使用方法:

首先,先放官方的文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html
我再用我自己的话解释一下:
所谓小程序订阅消息的意思就是小程序向用户发起是否通知消息,由用户去决定是否要订阅此消息,用户每订阅一次小程序可以发送一次通知,称为一次性订阅。接下来看看步骤:

第一步:

我们需要先去小程序微信公众平台手动配置获取模板 ID:登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

我们来看第一步的详细步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二步:

在小程序js端调用wx.requestSubscribeMessage()方法
官方文档链接:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html

我们来看第二步的详细步骤:
1.在这里插入图片描述
在这里插入图片描述
2.然后我们来到小程序js端编写代码:

sub() { //点击用户授权订阅按钮事件
    wx.requestSubscribeMessage({
      tmplIds: ['8K03EGIT1cgRHWOykxUvjlMXo1fI8O-LjbNE-iXI2Ms'],
      //在数组中填入刚刚复制的模版id
      success(res) {
        console.log(res)//我们可以输出res来看看是怎么样的(大家可以试试)
        //然后我们判断用户是否点击了同意授权
        if(res['8K03EGIT1cgRHWOykxUvjlMXo1fI8O-LjbNE-iXI2Ms']=='accept'){
          //判断等于'accept'表示用户点击同意该条id对应的模板消息
          //判断等于'reject'表示用户拒绝订阅该条id对应的模板消息
          //判断等于'ban'表示已被后台封禁
          //这里我们判断等于‘accept’表示用户同意订阅我们将执行云函数给用户发送订阅消息,这里有两种方法给用户发送订阅消息,我这里使用的是云函数,大家可以再去看看官方文档使用https调用进行发送
          wx.cloud.callFunction({//访问云函数,具体代码可查看第三步
              name: 'tamplate',//云函数名称
              data: {
				imagesname:'同学聚会',
				imagesvalue:'照片拍的真好看',
				name:'陈同学'
			  }//传入即将发送订阅消息的数据
          }).then((res) => {
               console.log(res)
          })
        }else{
          //用户没有点击同意订阅
        }
      }
    })
  },

第三步

我们在云函数调用subscribeMessage.send方法编写代码进行发送订阅消息
官方文档连接:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.send.html#method-cloud

1.首先我们创建一个云函数进入config.json中进行配置权限
在这里插入图片描述
2.然后进入我们的index.js编写正式代码
我们可以看看方法参数:在这里插入图片描述

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
  try {
    const result = await cloud.openapi.subscribeMessage.send({
      touser: cloud.getWXContext().OPENID, // touser为接受者的openid,这里通过 getWXContext 获取 OPENID,也可以通过小程序端进行传入
      templateId: "8K03EGIT1cgRHWOykxUvjlMXo1fI8O-LjbNE-iXI2Ms",//所需下发的订阅模板id
      page: '/pages/my/index',//页面路径链接
      data: {//这里需要回到平台管理的模版详情界面具体请看下图
        thing6: {
          value: '评论成功'
        },
        thing1: {//评论相册名称,使用传入来的数据
          value: event.imagesname
        },
        thing3: {//评论相册的内容
          value: event.imagesvalue
        },
        name2: {//评论人名称
          value: event.name
        },
        miniprogramState:'developer'//因为我这是开发版,大家也可以不填,默认就好,我这里lang也是默认
      },
    })//因为是异步所以我们加了await让它可以赋值最后返回
    return result
  } catch (err) {
    throw err
  }
}

在这里插入图片描述

结尾:

到这里应该就结束了,我这里发送订阅消息用的是小程序云函数的调用,如果用https调用需要获取access_token,对于个初学前端的同学可能不是这么友好,相比云函数调用会好用点。

还有一些问题:
1.对于怎么知道我还可以发送几次消息的话,这是在腾讯服务器那边记录我们这边应该不知道,总之用户点击一次同意订阅就能不限时间的发送一次订阅消息(针对于一次性订阅消息), 发多了也会报错。

2.还需要注意模版传入的内容尽量控制内容不要有特殊符号,如果传入内容文字过多可以先在云函数端先进行格式化把多的转换成…之类的也行。

3.如果有两个订阅消息的话可以直接加在小程序端的wx.requestSubscribeMessage方法的tmplIds数组里,再分别进行判断他们是否等于accept。

4.如果在获取用户同意时用户点击了不再询问的话,下次获取的时候就是直接同意的,累积加一次发送消息权限。如果你想查看消息状态的话可以通过 wx.getSetting 接口可获取用户对相关模板消息的订阅状态。

5.这篇文章是对于一次性订阅消息及用的是小程序云函数调用方法,对于长期订阅的话官方文档的意思是:“目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。”

本文章是我一个字一个字的打出来,图也是我自己做,本人也是正在看各种视频学习中,发现一些好的会写出来也算给自己加深印象吧。如有雷同纯属巧合。

谢谢


一只正在成长的狮子!大家一起努力。


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页