小程序实现消息订阅及发送

news2024/11/17 23:34:37

在我们的家政服务小程序中,用户可以新增预约。一般的场景是新增预约的时候提醒用户接收通知,在状态变更的时候我们来发送订阅消息。本篇我们来讲解一下小程序订阅消息功能的开发。

1 开通订阅消息模板

要想发送订阅消息,首先需要选用一个消息模板。打开你自己的小程序后台,点击订阅消息菜单
在这里插入图片描述
切换到公共模板,我们在搜索框里输入预约,选用预约结果通知模板
在这里插入图片描述
从关键词里勾选用户名称、预约时间、预约结果,点击提交
在这里插入图片描述
保存成功后模板会出现到我的模板里
在这里插入图片描述
点击详情,需要关注的是模板ID和详细内容字段
在这里插入图片描述

2 创建自定义API

在微搭中,如果需要发送订阅消息的,我们需要自己开发后端逻辑。后端逻辑的代码是写在API里,登录控制台,点击新建APIs
在这里插入图片描述
选择自定义代码
在这里插入图片描述
录入名称和标识
在这里插入图片描述
然后修改一下方法名称和标识
在这里插入图片描述
在自定义代码中贴入如下代码

const cloud = require('wx-server-sdk')
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
})

module.exports = async function (params, context) {
  try {
    const result = await cloud.openapi({appid: context.env.currentAppId}).subscribeMessage.send({
        "touser": context.env.currentOpenId,
        "page": 'index',
        "lang": 'zh_CN',
        "data": {
          "name1": {
            "value": params.name1
          },
          "date2": {
            "value": params.date2
          },
          "phrase3": {
            "value": params.phrase3
          }
        },
        "templateId": params.templateId,
        "miniprogramState": 'trial'
      })
    return result
  } catch (err) {
    return err
  }
};

然后新建入参,入参的结构如下
在这里插入图片描述
点击方法测试,输入入参
在这里插入图片描述
点击出参映射
在这里插入图片描述

3 提示用户订阅并且发送消息

API创建好之后,我们就可以提醒用户订阅了,订阅的时机是用户点击提交按钮后提示订阅并且发送消息

打开我们的新增预约页面,选中按钮,增加一个事件
在这里插入图片描述
选中javascript代码
在这里插入图片描述
选择添加新方法
在这里插入图片描述
输入方法的名称,代码如下

export default function({event, data}) {
  try{
    wx.requestSubscribeMessage({
      tmplIds: ['qwtYZFy7Y8a63nLm91nRq9_VtFpH_NUz3SJNh_jmm8c'],//模板id
      success (res) {
        console.log(res)
      },
      fail (res){
        console.log(res)
      }
    })
  } catch (e) {
    console.log("错误代码",e.code,"错误信息",e.message)
  }
}

然后选中表单容器,我们在数据源新增成功后给用户发送预约成功的消息
在这里插入图片描述

export default async function({event, data}) {
 //const openId = app.auth.currentUser.openId
  const currentdatte = app.utils.formatDate(Date.now(), 'yyyy年mm月dd日 HH时MM分ss秒');
  try{
    const result = await app.cloud.callConnector({
        name: 'yycgtx_r9t1lv4',
        methodName: 'sendYuyueMsg',
        params: {
          "templateId":"qwtYZFy7Y8a63nLm91nRq9_VtFpH_NUz3SJNh_jmm8c", //消息模板id
          "name1":app.dataset.state.user.nc,
          "date2":currentdatte,
          "phrase3":"预约成功"
        }, // 方法入参
    });
    console.log("result",result)
  } catch (e) {
    console.log("错误代码",e.code,"错误信息",e.message)
  }
}

4 小程序发布

点击顶部导航条的发布按钮,发布成体验版,我们在手机上进行测试
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/419558.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【ES】数据同步集群

【ES】数据同步&集群3.数据同步3.1.思路分析3.1.1.同步调用3.1.2.异步通知3.1.3.监听binlog3.1.4.选择3.2.实现数据同步3.2.1.思路3.2.2.导入demo3.2.3.声明交换机、队列1)引入依赖2)声明队列交换机名称3)声明队列交换机3.2.4.发送MQ消息…

解决macOS IntelliJ IDEA 卡顿问题

写在前面的话1:我在撰写这篇博客时候,所用的IntelliJ IDEA版本是IntelliJ IDEA 2022.3.3 (Ultimate Edition),你需要知道可能对于不同的IntelliJ IDEA版本会有一定的差异 写在前面的话2:如果我这篇博客可以帮助到你,请…

国内可用的 ChatGPT

国内可用的 ChatGPT 替代列表功能和使用顺便推荐列表 https://chatgpt.qdymys.cn/ :三小时只能用10次 https://alllinkai.com/ :体验完,要登录,不推荐 https://gpttalk.live/ :每天限制使用次数 https://chatgpt-c…

深入探讨机器学习中的过拟合现象及其解决方法

1. What❓ 过拟合(Overfitting)是指在机器学习中,模型在训练集上表现较好,但在测试集或实际应用中表现较差的现象。过拟合发生时,模型过于复杂地学习了训练集中的噪声、异常值或特定模式,从而导致对新样本…

限流:计数器、漏桶、令牌桶 三大算法的原理与实战(史上最全)

限流 限流是面试中的常见的面试题(尤其是大厂面试、高P面试) 注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请到文末《技术自由圈》公号获取 为什么要限流 简单来说: 限流在很多场景中用来…

教程 | 近红外数据的预处理和平均(上)

前言 近红外光谱(NIRS)是一种测量流经传感器所在组织的血液中氧合水平的方法。它基于这样一个事实,即含氧血红蛋白和脱氧血红蛋白具有不同的吸收光谱,因此你会看到它有不同的颜色。大多数近红外系统在每个光源光电二极管发射2个波长的光,通常…

【记录】ORB_SLAM2 例程(README文件里的单双目RDB-D、ROS、AR、外接摄像头、点云)

第一次跑 ORB_SLAM2,记录一下一、普通环境0.build.sh 遇到的问题(1)usleep(2)AlignedBit1.单目、TUM数据集2.双目、KITTI数据集3.RGB-D、TUM数据集二、ROS0.build_ros.sh 遇到的问题(1)rospack …

【C++】结构体应用案例 1

目录 1、缘起 2、案例描述 3、案例分析 4、代码清单 1 5、代码清单 2 6、总结 1、缘起 最近学习完了 C 语言的结构体相关知识点,如 结构体数组,结构体指针,结构体嵌套结构体 和 结构体做函数参数。本篇博客围绕着这些知识点&#xff0c…

【华为机试真题详解JAVA实现】—Sudoku

目录 一、题目描述 二、解题代码 一、题目描述 问题描述:数独(Sudoku)是一款大众喜爱的数字逻辑游戏。玩家需要根据9X9盘面上的已知数字,推算出所有剩余空格的数字,并且满足每一行、每一列、每一个3X3粗线宫内的数字均含1-9,并且不重复。 例如: 输入 输出

SpringCloud学习-实用篇02

以下内容的代码可见:SpringCloud_learn/day02 1.Nacos配置管理 之前提到的Nacos是作为注册中心,除此之外它还有配置管理功能 统一配置管理 假设有多个微服务之间有关联,此时修改了某个微服务的配置后其他相关的微服务也需要重启,十…

Javaweb | 过滤器、配置、过滤器链、优先级

💗wei_shuo的个人主页 💫wei_shuo的学习社区 🌐Hello World ! 过滤器 概念 过滤器(Filter)是处于客户端与服务器目标资源之间的一道过滤技术 用户的请求和响应都需要经过过滤器 过滤器作用 执行地位在Servl…

C++初阶 -1- C++入门part2

文章目录6.引用什么是引用?引用的使用引用的应用传值、传引用效率比较权限引用和指针的区别⭐7.内联函数8.auto关键字9.基于范围的for循环10.指针空值——nullptr6.引用 什么是引用? “别名” int a 0; int& b 0;👆即 地址为0x00000…

【linux】:模拟文件基本操作以及文件在磁盘中如何存储的学习

文章目录 前言一、模拟C库文件操作二、磁盘文件总结前言 经过我们上一篇对linux系统文件操作的学习想必我们已经会使用系统文件接口了,今天我们就用系统文件接口来封装一个像C语言库那样的文件操作函数的函数来加深我们对文件操作的学习。 一、模拟C库文件操作 首…

通过Milo实现的OPC UA客户端连接并订阅Prosys OPC UA Simulation Server模拟服务器

背景 前面我们搭建了一个本地的 PLC 仿真环境,并通过 KEPServerEX6 读取 PLC 上的数据,最后还使用 UAExpert 作为 OPC 客户端完成从 KEPServerEX6 这个OPC服务器的数据读取与订阅功能:SpringBoot集成Milo库实现OPC UA客户端:连接…

新一代信息技术赋能,安科瑞搭建智慧水务体系的新思路

随着新时期治水方针的逐步落实,水利现代化、智能化建设已开启,物联网、图像识别、数字孪生等新技术的成熟,也为智慧水务体系的搭建提供了技术保障,新时代治水新思路正逐步得到落实。本文对智慧水务的总体架构与包含的建设内容进行…

Qt第六十二章:图标库QtAwesome的使用

目录 一、安装依赖 二、主页 三、文档 四、案例 1、图标 2、样式 3、alpha 通道 4、 多图标堆叠 5、动画 6、字体 五、系列 1、msc系列 2、fa5系列(选择free栏) 3、fa5s系列(选择free栏) 4、fa5b系列(选…

由libunifex来看Executor的任务构建

前言 之前的一篇文章讲述了future的优缺点,以及future的组合性,其中也讲述了构建任务DAG一些问题,同时给出了比较好的方案则是Executor。 Executor还未进入标准(C23),Executor拥有惰性构建及良好的抽象模型…

尚硅谷大数据技术Zookeeper教程-笔记03【源码解析-算法基础】

视频地址:【尚硅谷】大数据技术之Zookeeper 3.5.7版本教程_哔哩哔哩_bilibili 尚硅谷大数据技术Zookeeper教程-笔记01【Zookeeper(入门、本地安装、集群操作)】尚硅谷大数据技术Zookeeper教程-笔记02【服务器动态上下线监听案例、ZooKeeper分布式锁案例、企业面试真…

多模态大模型的发展、挑战与应用

多模态大模型的发展、挑战与应用 2023/04/15 研究进展 随着 AlexNet [1] 的出现,过去十年里深度学习得到了快速的发展,而卷积神经网络也从 AlexNet 逐步发展到了 VGG [2]、ResNet [3]、DenseNet [4]、HRNet [5] 等更深的网络结构。研究者们发现&#…

用vscode运行Java程序初体验

最近开始学习Java编程了,以前学习过C、C 、Python,主要用微软的visual studio code来运行python程序,于是就尝试了用vscode来运行java代码,记录一下使用的经验,帮助大家少走弯路。 安装了Java的集成编辑器IDE "Ec…