借助云函数实现微信小程序订阅消息推送功能

项目需要弄个微信小程序,第一次发教程,有些地方可能不太清楚,我尽量把我遇到的问题描述清楚

先看一下官方给订阅消息的简介

接下来咱们就开始借助云函数实现微信小程序订阅消息推送功能:

1、获取模板ID

模板id的获取首先要登陆微信公众平台

登录之后选择小程序就能看到下面这个页面:

找到订阅消息点击公共模板库,在这里选择你需要的模板:(这里有一点提一下由于长期性订阅消息,目前仅向政务民生、医疗、交通、金融、教育等线下公共服务开放仅就线下公共服务这一点,长期性订阅消息就和我们无缘了。
所以我们这里只能以使用一次性订阅消息为例。

下图就是我们添加好的模板,以及我们在之后推送中需要的模板id:

2、创建程序文件

我这边用的微信开发者工具开始写得:

直接点下面链接下载

https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

进去之后如下图,直接小程序点加号创建新的

之后你就可以看到一些信息,还有一些可以使用的模板:

 

这里注意APPID,如果你想你写得这个小程序可以正式在微信里投入使用,建议注册一个,也很方便,新建完了界面如下,一些应用使用我这里就不提及了:

接下来就进入到代码编写环节了

3、请求用户授权

我们做订阅消息授权时,一般是用户点击或者支付完成后才可以调起来授权弹窗,官方是这么要求的:

(1)编写index.wxml代码

<button bindtap="shouquan" type='primary'>获取订阅消息授权</button>

(2)编写index.js代码,实现点击获取授权

//获取授权的点击事件shouquan() {wx.requestSubscribeMessage({tmplIds: ['123456'], //这里填入我们生成的模板idsuccess(res) {console.log('授权成功', res)},fail(res) {console.log('授权失败', res)}})

(3)点击按钮运行效果如下
开发者工具模拟器上点击授权弹窗是这样的:

手机上的效果如下图:

可以看到,这里显示的就是我们添加的 模板。
细心的同学可以看到, 手机上多了一个 ‘总是保持以上选择,不再询问’。主要是我们正常订阅消息授权时,用户允许的话,你只能推送一次消息。也就是用户允许一次,我们就可以推送一条消息给用户,并且这个允许不存在过期。所以我们可以让用户尽量多的点击允许,这样我们就可以尽量多的给用户发送消息了。

这里用户允许后,我们就可以给用户推送消息了,接下来我们来借助云开发的云函数来实现消息推送功能。

4、获取用户的opneid

我们来看一下微信开放文档里面给到的示例:

可以看到官方给了两种方法,我们这里使用云调用,也就是用云函数来实现推送功能

下面给到一些要用到的参数:

接下来我们开始编写获取用户openid的代码

在使用云开发时,有几点需要注意的

1、需要在project.config.json里创建云函数目录如下图

2,需要在app.js里初始化云开发环境

注:云开发环境id获取

    点击云开发按钮:

可以看到这里就是我们的云开发环境的id:

然后我们进入界面右击标注的这个文件夹,新建一个node.js文件:

    

我们这里给这个云函数命名为:getopenid

我们在这个文件中的index.js里初始化云开发环境:

那么在这里就有一个问题了,当我们拥有多个云开发环境时,难道每切换一次环境,就要重新初始化吗?其实这个问题官方已经替咱们想过了:

我们将上面初始化的部分替换成上图标注的形式,每当切换云函数时就会自动初始化当前环境,可谓是一劳永逸

这里有一点要注意的是,每当我们更改完云函数都要右键上传来更新代码,否则你就白改了:

接下来我们在.wxml文件中再添加一个按钮:

<button bindtap="getOpenid">获取用户的openid</button>

我们接下来写一下index.js里的代码:

    //获取用户的openidgetOpenid() {wx.cloud.callFunction({name: "getopenid"//name后面填创建的node.js的文件名}).then(res => {console.log("获取openid成功", res)}).catch(res => {console.log("获取openid失败", res)})},

我们调试一下,标注的就是用户的openid了:

5、用云函数实现消息推送

我们只需要创建一个云函数如下,然后填入用户的openid,要跳转的小程序页面链接,模板内容,模板id即可。

我们按上面方法新建一个node.js云函数文件,这里命名为fasong

还是我们先在.wxml文件中再添加一个按钮:

<button bindtap="sendone">发送消息给用户</button>

index.js:

//发送模板消息到指定用户,推送之前要先获取用户的openidsendone(openid) {wx.cloud.callFunction({name: "fasong",data: {openid:"o11bI4oIcFRBSLpCLq7l28K0BGS4" }}).then(res => {console.log("推送消息成功", res)}).catch(res => {console.log("推送消息失败", res)})}

云函数的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: event.openid, //要推送给那个用户page: 'pages/index/index', //要跳转到那个小程序页面data: {//推送的内容date1: {value: '2022年7月6日 17:16'},thing2: {value: '第三接口'},thing3: {value: '被恶意拔除!'}},templateId: '3Z8nLi_GumUcxM9emooLZY-c4rwj5srToyE-WG-NdwY' //模板id})console.log(result)return result} catch (err) {console.log(err)return err}
}

         注:代码里的date日期项按照我上面给的代码格式来(2022年7月6日 17:16)否则会报错!

这里注意代码里面的date1、thing2什么的根据模板来,如图:(查看我的模板--详情:

调试一下,就可以实现消息推送的功能了:

大概就是这么个流程,下面我把主要代码给大家:

index.wxml

button bindtap="shouquan" type='primary'>获取订阅消息授权</button>
<button bindtap="getOpenid">获取用户的openid并推送消息</button>
<button bindtap="sendone">发送消息给用户</button>

index.js

Page({//获取授权的点击事件shouquan() {wx.requestSubscribeMessage({tmplIds: ['3Z8nLi_GumUcxM9emooLZY-c4rwj5srToyE-WG-NdwY'], //这里填入我们生成的模板idsuccess(res) {console.log('授权成功', res)},fail(res) {console.log('授权失败', res)}})},//获取用户的openidgetOpenid() {wx.cloud.callFunction({name: "getopenid"}).then(res => {console.log("获取openid成功", res)}).catch(res => {console.log("获取openid失败", res)})},//发送模板消息到指定用户,推送之前要先获取用户的openidsendone(openid) {wx.cloud.callFunction({name: "fasong",data: {openid:"o11bI4oIcFRBSLpCLq7l28K0BGS4" }}).then(res => {console.log("推送消息成功", res)}).catch(res => {console.log("推送消息失败", res)})}})

推送对应的云函数:

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: event.openid, //要推送给那个用户page: 'pages/index/index', //要跳转到那个小程序页面data: {//推送的内容date1: {value: '2022年7月6日 17:16'},thing2: {value: '第三接口'},thing3: {value: '被恶意拔除!'}},templateId: '3Z8nLi_GumUcxM9emooLZY-c4rwj5srToyE-WG-NdwY' //模板id})console.log(result)return result} catch (err) {console.log(err)return err}
}

我这个过程主要参考下面这个B站up的视频,不太清楚的可以去参考一下:

https://www.bilibili.com/video/BV1FE411M7GG?p=8&spm_id_from=333.999.header_right.history_list.click&vd_source=aa49929fbbf3f43d1ab1d74393755e52

注:上传保存云函数的时候,可能会出现云函数有以下未安装的依赖问题参考下面这个链接:

https://blog.csdn.net/weixin_49769065/article/details/108109443

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微信小程序 云开发 聊天功能

项目背景 。功能要求为&#xff1a;一对一聊天&#xff0c;可以发送文字&#xff0c;图片&#xff0c;语音&#xff0c;文件&#xff0c;视频&#xff0c;含消息列表页。 暑假没事干来写篇博客复盘一下。框架和样式部分就是采用了colorUI 的组件&#xff0c;没啥好说的&#x…

借助云开发,利用订阅消息,云函数路由实现小程序好友一对一聊天,添加好友等仿微信功能

微信小程序借助云开发&#xff0c;利用订阅消息&#xff0c;云函数路由实现小程序好友一对一聊天&#xff0c;添加好友等仿微信功能 这篇文章已经进行了更新&#xff0c;请点此进行查看仿微信好友聊天**点此获取源码** 主要功能有后续可能补充功能详细介绍注意 这篇文章已经进行…

微信小程序云开发通过服务号给用户推送模板消息

主要参考下面两个文章 1、云函数接收公众号消息推送 | 微信开放社区 ​​​​​​2、微信小程序通过公众号(服务号)推送通知或提醒步骤及代码(一&#xff0c;获取推送前所需信息)_微信小程序推送服务通知_庆登登登的博客-CSDN博客 一些基本的概念就不讲了&#xff0c;这里主要…

微信小程序云开发———云函数

1.云函数环境配置 在目录中添加一个cloud文件夹与pages平级 并在project.config.json文件中配置云函数所在目录cloud/ 保存后cloud文件夹会出现一个云朵的形状&#xff0c;并且需要我们进行同步环境列表 因为作者有其他的云开发环境&#xff0c;所以正常来说同学们新建的cloud…

微信小程序消息推送

简介 微信小程序发送消息推送到用户微信上 基础流程 用户登录 &#xff1a;获取微信提供的openid 开发者去微信公众平台申请模板&#xff1a;获得模板id授权消息推送&#xff1a;在小程序中调用wx.requestSubscribeMessage方法成功后将数据保存到后台 消息推送表 中在需要发送…

再度警惕!AI“灭霸”要来了?Hinton、Bengio等300余大佬联名上书

来源&#xff1a;机器之心 人工智能存在「灭绝」级别的风险&#xff0c;未来的系统可能像核武器一样致命。本周二&#xff0c;著名的人工智能学者、科技公司创始人团结了起来&#xff0c;发出呼吁。 公开信地址&#xff1a;https://www.safe.ai/statement-on-ai-risk 前有马斯克…

【探索人工智能】我与讯飞星火认知大模型的对话

文章目录 讯飞星火认知大模型的地址概要讯飞星火认知大模型的发展历程讯飞星火认知大模型的主页利用讯飞星火大模型解决一些基本的数学问题讯飞星火认知大模型与OpenAI,ChatGPT没有关系&#xff01;让讯飞星火认知大模型编写传奇代码hello world小结 讯飞星火认知大模型的地址 …

在Ubuntu22.04里安装脉冲星信号处理工具----Pulsar软件包

在Ubuntu22.04安装Pulsar软件包 1.ubuntu 22.04 安装gcc-7、g7&#xff08;用来编译后续软件&#xff09; 1.1 添加镜像&#xff1a; 打开源镜像文件 sudo vim /etc/apt/sources.list在最后一行添加如下内容&#xff1a; deb [archamd64] http://archive.ubuntu.com/ubunt…

6-2. 实战项目:足球运动员分析

足球运动员分析 1. 项目背景 当前&#xff0c;足球运动是最受欢迎的运动之一&#xff08;也可以说没有之一&#xff09;。 我们的任务&#xff0c;就是在众多的足球运动员中&#xff0c;发现统计一些关于足球运动员的共性&#xff0c;或某些潜在的规律。也是好玩。 2. 数据…

【案例】足球运动员分析

文章目录 足球运动员分析案例需求数据集程序实现1. 导入相关库2. 加载相关数据集3. 数据探索与清洗3.1. 缺失值处理3.2. 异常值处理处理3.3. 重复值处理 4. 身高与体重处理5. 运动员身高&#xff0c;体重&#xff0c;评分信息分布6. 左脚与右脚选手在数量上是否存在偏差7. 从球…

足球运动员分析

数据集 数据集 背景&#xff1a; 我们关注足球运动员的如下内容&#xff1a; 足球运动员是否受出生日期的影响&#xff1f;左撇子适合踢足球吗&#xff1f;足球运动员的号码是否与位置有关&#xff1f;足球运动员的年龄与能力具有怎样的关联&#xff1f; 哪些技能会对足球运…

解析波士顿动力Handle机器人背后的技术(附PPT+视频)

[转] http://www.leiphone.com/news/201703/URrR8CG2tmtghNDl.html 导语&#xff1a;Boston Dynamics 在机器人动力方面堪称翘楚&#xff0c;其由双足或多足机器人组成的机器人天团总是时不时能给我们带来惊喜。上周&#xff0c;Boston Dynamics 又发布了一段视频&#xff0c;并…

解析波士顿Handle机器人背后的技术

在斗鱼直播平台&#xff0c;浙大李超博士的公开课分享了关于handle的技术细节&#xff0c;解析波士顿Handle机器人背后的技术&#xff0c;观察敏锐&#xff0c;思路清晰。 内容介绍了波士顿动力公司的历代4足和2足机器人的开发历史。并结合李超的专业重点讲解了腿的细节。 李…

开源四足机器人 附设计图及代码

斯坦福学生机器人俱乐部&#xff08;Stanford Student Robotics club&#xff09;Extreme Mobility 团队最近迎来了一名新成员——一个名为 Stanford Doggo 的四足机器人。这个机器人能跳 1 米多高&#xff0c;还能表演后空翻。与其他四足机器人动辄上万美元的成本不同&#xf…

ROS2机器人笔记21-03-14

ROS会议和活动&#xff1a; 如果对机器人技术感兴趣&#xff0c;但是看不到任何适合兴趣的项目&#xff0c;那么可能还需要考虑将其应用于同级组织中&#xff0c;例如OpenCV和MoveIt&#xff01; 核心是各种应用和ROS2的逐渐普及 GPU运算越来越主流&#xff0c;Nvidia Jetson…

波斯顿动力机器人“特效专辑”

关注星标公众号&#xff0c;不错过精彩内容 作者 | strongerHuang 公众号 | strongerHuang 波斯顿动力机器人的视频为啥那么火&#xff1f; 首先&#xff0c;他们机器人本身很牛逼&#xff0c;能完成各种高难度动作&#xff0c;拍出来的视频自然很多人关注。 其次&#xff0c;有…

清华2019最新AI发展报告出炉!400页干货,13大领域一文看懂

2019-12-08 20:36:36 当前&#xff0c;人工智能正处在爆发期。我国在人工智能领域的科学技术研究和产业发展起步稍晚&#xff0c;但在最近十余年的时间里抓住了机遇&#xff0c;进入了快速发展阶段。在这个过程中&#xff0c; 技术突破和创造性高端人才对人工智能的发展起着至…

ROS机器人培训基地和暑期学校证书样例

初级工程师证书&#xff08;非高清&#xff09;&#xff1a; 初级师资证书&#xff08;非高清&#xff09;&#xff1a; 为了鼓励学生朋友参与ROS机器人暑期学校&#xff0c;我也参加了并完成了所有任务&#xff0c;证书样本&#xff1a; 2021年&#xff08;非高清&#xff09…

专业的机器人资讯与太空中的ROS

参考&#xff1a;www.therobotreport.com Open Robotics正在与由 Jeff Bezos 创立的亚轨道航天公司Blue Origin和 NASA 合作开发 Space ROS。Space ROS 是 ROS 2 的一个版本&#xff0c;旨在满足航空航天软件在用于任务之前必须满足的验证和确认要求。 机器人操作系统 (ROS) 已…

机器人介绍、应用、前景

机器人介绍、应用、前景 1 介绍1.1 定义1.2 作用1.3 发展历程1.4 分类1.5 三大顾虑1.6 前景 2 种类工业机器臂协作机械臂工业移动机器人复合机器人扫地机器人服务机器人机器狗人形机器人无人机 3 技术3.1 机器人学分类3.2 功能分类3.2.1 感知3.2.2 决策3.2.3 执行AGV减震机构减…