利用Nodejs怎么实现一个微信小程序消息推送功能

发布时间:2021-01-20 13:55:29

来源:亿速云

阅读:92

作者:Leah

今天就跟大家聊聊有关利用Nodejs怎么实现一个微信小程序消息推送功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

小程序发送订阅的请求

需要用到上一步获取的模板Id// 小程序

入驻申请

// 入驻申请消息订阅

messageSubmit = () => {

Taro.requestSubscribeMessage({

tmplIds: ['SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9'],

success: (res) => {

// 调用服务端接口,在数据库写入一条订阅记录

// this.subscribeDeal()

}

})

}

服务端发起推送

推送一般有两种手动触发、

还有就是订阅消息后,达到某个条件自动触发推送、

对于第一种情况,就直接调用微信的推送接口就好了。第二中情况稍微麻烦一点,可以加一个定时的任务,或者使用相关的队列库、等条件符合了再触发、

需要注意的地方发送推送的时候需要用户的openid,以及模板id。具体的推送内容字段,在第一步模板详情里面可以查看、

调用微信推送的接口的时候需要access_token,最好缓存一下,频繁调用会有失效的问题、

获取access_token并缓存async getAccessToken () {

const { appId, appSecert, host } = this.app.config.idolWxAConfig;

return new Promise(async (resolve) => {

const currentTime = new Date().getTime()

const redisToken = await this.app.redis.get('wxtoken').get('token') || '{access_token: "", expries_time: 0}'

const accessTokenJson = JSON.parse(redisToken)

if (accessTokenJson.access_token === '' || accessTokenJson.expries_time

const res = await this.ctx.curl(`${host}/cgi-bin/token?appid=${appId}&secret=${appSecert}&grant_type=client_credential`, { dataType: 'json' })

if (res.data) {

accessTokenJson.access_token = res.data.access_token

accessTokenJson.expries_time = new Date().getTime() + (parseInt(res.data.expires_in) - 200) * 1000

await this.app.redis.get('wxtoken').set('token', JSON.stringify(accessTokenJson))

resolve(accessTokenJson)

}

} else {

resolve(accessTokenJson)

}

})

}

向微信发送推送请求async sendSubscribeMsg (openid) {

let requestData = {

"touser": `${openid}`,

"template_id": "SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9",

"page": `/pages/certification/index`,

"data": {

"phrase2": {

"value": `审核通过`

},

"thing3": {

"value": `您的申请已经审核通过`

}

}

}

const { host } = this.app.config.idolWxAConfig;

// 获取access_toekn

const tokenJson = await this.ctx.service.wx.getAccessToken()

const res = await this.ctx.curl(`${host}/cgi-bin/message/subscribe/send?access_token=${tokenJson.access_token}

`, {

method: 'POST',

contentType: 'json',

data: requestData,

dataType: 'json'

});

if (res.data.errmsg === 'ok') {

console.log('========推送成功========')

// TODO

} else {

console.log('========推送失败========')

// TODO

}

}

看完上述内容,你们对利用Nodejs怎么实现一个微信小程序消息推送功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

nodejs android 推送,利用Nodejs怎么实现一个微信小程序消息推送功能相关推荐

  1. php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解

    微信小程序 消息推送php服务器验证实例详解 设置页面("设置">>"开发设置"): 1.设置服务器域名 注意http和https协议的不同. 2. ...

  2. TP6 微信小程序消息推送配置Token校验失败200302

    ThinkPHP6 微信小程序消息推送配置时报错: {"ret":200302,"err_msg":"verify token fail"} ...

  3. 微信小程序消息推送,实现未完成计划的在微信内的定时提醒功能

    微信小程序消息提醒(微信内提醒) 提示:此处仅是小程序消息提醒的一个小例子,希望能够为大家抛砖引玉 目录 微信小程序消息提醒(微信内提醒) 需求及效果展示 一.实现思路 二.实现步骤 1.获取模板ID ...

  4. 微信小程序消息推送(订阅消息原模板消息)开发流程

    注:模板消息没了. 正常开发肯定需要前后端配合,此处都在小程序里写了 参考文档:https://developers.weixin.qq.com/miniprogram/dev/framework/o ...

  5. 微信小程序消息推送功能开发(java实现)

    先好好把官方文档看一看,链接https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/message-push ...

  6. 微信小程序 消息推送

    开发微信小程序,想实现一个消息推送的功能,微信提供了requestSubscribeMessage 方法. 这里我们简单了解一下: 首先需要授权 uni.requestSubscribeMessage ...

  7. java实现的小程序_Java实现 微信小程序 + 消息推送

    实现效果: 下面要显示五个字段 接下来,参照官方文档,一步步实现: 一.官方给出请求示例.返回示例 二.根据上面编写实体类 (1)请求参数 @Data public class SendTemplat ...

  8. 微信小程序消息推送自有服务器无法接收到信息,消息推送服务器配置次数用完的解决方式。

    问题描述:消息推送自有服务器无法接收到信息,消息推送服务器配置次数用完! 解决方向:自有服务器无法接收信息的排错,消息推送配置的次数用完的解决方式. 适合版本:微信所有版本(2020.4.16) 关于 ...

  9. 微信小程序——消息推送配置

    第一步:官网下载对应版本的cryptoDemo 下载地址:https://wximg.gtimg.com/shake_tv/mpwiki/cryptoDemo.zip 第二步:创建检查文件wxchec ...

最新文章

  1. 将span隐藏的函数_分类汇总函数Subtotal和Aggregate应用技巧解读
  2. 命名空间 namespace
  3. 资源:网页翻译API(文档)
  4. 报错,null [java.lang.IndexOutOfBoundsException,Index: 5, Size: 5]
  5. 登录邮箱,注意地址栏是否是https开头
  6. 登录mysql 1130_解决远程登录mysql数据库报1130错误-阿里云开发者社区
  7. Python基本数据类型(列表)
  8. 固高GTS运动控制卡,C#语言三轴点胶机样本程序源代码
  9. HTML表格表单案例
  10. Tcl 语言——流程控制篇
  11. 18. OP-TEE中secur world和non-secure world的切换过程
  12. GNU Trove trove4j
  13. 互联网APP监控即时报警解决最终方案及总结
  14. 达梦数据库(DM8)基本使用
  15. 群晖自动删除重复文件_在群晖中批量删除重复文件(零基础手把手图文)
  16. VPX信号处理板VPX3U-2DSP-C6678
  17. 【饭谈】软素质怎么提高?(适合软件测试人的专用办法)
  18. WPF 窗口最大化正确方法
  19. 计算机技术专业 英文,计算机应用技术专业(国外英文资料).doc
  20. 阿里云学生机使用nginx搭建点播服务器

热门文章

  1. Spring Boot CommandLineRunner和ApplicationRunner
  2. jenkins部署java_在Window上使用Jenkins自动部署和上传快照Java工件
  3. 不知所措:您是否真的需要为您的API提供客户端库?
  4. Java命令行界面(第22部分):argparser
  5. Spring和Hibernate的自定义审核日志
  6. 高级Lucene查询示例
  7. 延迟分析中的案例研究:锁定与同步
  8. spring mvc 教程_Spring MVC开发–快速教程
  9. Java 8发布一年后,IDE和编译器尚未完全就绪
  10. Hazelcast入门指南第6部分