微信小程序(订阅消息)功能
作者:sayid760 发布时间:2024-04-28 09:36:48
标签:微信小程序,订阅消息
小程序模板消息即将被废弃掉,于是有了新接口wx.requestSubscribeMessage
订阅消息文档
步骤:
1、获取用户openid 、access_token
2、获取模板 ID
3、获取下发权限(api)
4、发送订阅消息 (api)
模板id
小程序代码:
获取下发权限:
// login.js
requestMsg(){
return new Promise((resolve, reject) => {
wx.requestSubscribeMessage({
tmplIds: ["MUtLwsw0xCndRULTgNHiXwGDyHJ-ZwAFL-b3kALcl0c"],
success: (res) => {
if (res['MUtLwsw0xCndRULTgNHiXwGDyHJ-ZwAFL-b3kALcl0c'] === 'accept'){
wx.showToast({
title: '订阅OK!',
duration: 1000,
success(data) {
//成功
resolve()
}
})
}
},
fail(err) {
//失败
console.error(err);
reject()
}
})
})
}
// index.wxml
<button class="v-btn mt40" bindtap="sendMsg">发生订阅消息</button>
// index.js
// 点击发生订阅
sendMsg:function(e){
wx.request({
url: 'https://cff.mynatapp.cc/wxXcx/sendMessage',
method: 'POST',
data: { },
header: {
'content-type': 'application/json' // 默认值
},
success(res) {
console.log(res)
}
})
}
nodejs(koa2)代码:
发送订阅消息:
// index.js
const router = require('koa-router')()
const request = require('superagent')
let AppID = 'xxxxx'
let AppSecret = 'xxxxx'
let access_token = 'xxxxx'
let openid = 'xxxxx'
// 点击发生订阅消息
router.post('/wxXcx/sendMessage', async (ctx, next) => {
let requestData ={
"touser": openid,
"template_id": "MUtLwsw0xCndRULTgNHiXwGDyHJ-ZwAFL-b3kALcl0c",
"page": "index",
"data": {
"phrase1": {
"value": "王小二"
},
"date5": {
"value": "2019年10月1日 15:01"
},
"phrase4": {
"value": "王老师"
},
"thing2": {
"value": "ps入门到精通"
},
"character_string6": {
"value": "1/10"
}
}
}
// 2、发送模板消息
let res = await request
.post(`https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${access_token}`)
.send(requestData)
.set('Accept', 'application/json')
console.log(res)
ctx.body = {
code: '200',
data: null,
msg: '操作成功'
}
})
总结
以上所述是小编给大家介绍的微信小程序(订阅消息)功能,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
来源:https://blog.csdn.net/qq_14993375/article/details/102693209


猜你喜欢
- 本文实例讲述了MySQL中ROUND函数进行四舍五入操作陷阱。分享给大家供大家参考,具体如下:在MySQL中, ROUND 函数用于对查询结
- 首先要明确,python里有json这个库,但并没有json这个类,所以所谓的json对象本质上就是一个dict;而json这个库,用于实现
- loss函数如何接受输入值keras封装的比较厉害,官网给的例子写的云里雾里,在stackoverflow找到了答案You can wrap
- Transformer模型概述Transformer是一种用于序列到序列学习的神经网络架构,专门用于处理输入和输出序列之间的依赖关系。该模型
- MySQL用Nested-Loop Join算法实现join查询区分驱动表和被驱动表,以驱动表的结果集为循环的基础,访问被驱动表过滤数据,然
- 一基础理解: var e = document.getElementById("selectId");e. option
- js给span标签赋值的方法?一般有两种方法:第一种方法:输出html<body onload="s()">
- 灵感来源之前在B站看到一个有意思的视频:【B站】【亦】终极云游戏!五千人同开一辆车,复现经典群体智慧实验大家可以看看,很有意思。up主通过代
- 推荐第四种方案1通过MyBatis配置文件创建读写分离两个DataSource,每个SqlSessionFactoryBean对象的mapp
- 模块内部封装了很多实用的功能,有时在模块外部调用就需要将其导入。常见的方式有如下几种:1 . import>>> impo
- 大家一定使用过 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题:1、数据库超过一定尺寸,比
- 问题你想使用一个装饰器去包装函数,但是希望返回一个可调用的实例。 你需要让你的装饰器可以同时工作在类定义的内部和外部。解决方案为了将装饰器定
- 判断字符串是否为空var strings = ''; if (string.length == 0) { alert(
- PHP addcslashes() 函数实例在字符 "W" 前添加反斜杠:<?php $str = addcsla
- 一、实验目的熟练掌握pandas中的groupby操作二、实验原理groupby(by=None, axis=0, level=None,
- 这个项目的名称与其叫做万能的XML不如叫做自动构建网站,根据一份XML文件,生成对应目录结构的网站,不过只有html还是太过于简单了,如果要
- 如下所示:#文件内容 lisilock = open("lock_info.txt", "r+",e
- 在网上找了找也没找到合适的最后自己测试用 存入:Replace("\r\n", "<br/>&qu
- 学习前言一起来看看Efficientdet的keras实现吧,顺便训练一下自己的数据。什么是Efficientdet目标检测算法最近,谷歌大
- edt_color_slt.jsvar _r = ""; var color_t