首页前端开发JavaScriptNodejs 微信小程序消息推送的实现

Nodejs 微信小程序消息推送的实现

时间2024-01-31 15:45:02发布访客分类JavaScript浏览222
导读:收集整理的这篇文章主要介绍了Nodejs 微信小程序消息推送的实现,觉得挺不错的,现在分享给大家,也给大家做个参考。 选择或创建订阅消息模板登录到微信小程序里面找到功能->订阅消息...
收集整理的这篇文章主要介绍了Nodejs 微信小程序消息推送的实现,觉得挺不错的,现在分享给大家,也给大家做个参考。

选择或创建订阅消息模板

登录到微信小程序里面找到功能-> 订阅消息。可以在公共模板库里选择需要的模板,如果没有找到自己需要的也可以自己创建然后等待审核、

选择完模板查看详情会得到模板ID,以及发送推送时需要的字段、

小程序发送订阅的请求

需要用到上一步获取的模板Id

// 小程序Text classname='rights-buy' onClick={
this.messageSubmIT}
    >
     入驻申请/Text>
    // 入驻申请消息订阅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  currentTime) {
   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小程序消息推送内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! 

您可能感兴趣的文章:
  • node事件循环和process模块实例分析
  • node.js中对Event Loop事件循环的理解与应用实例分析
  • Node中对非阻塞I/O、事件循环的知识点总结
  • Nodejs监控事件循环异常示例详解
  • 浅谈Node 异步IO和事件循环
  • nodejs通过钉钉群机器人推送消息的实现代码
  • node.js微信小程序配置消息推送的实现
  • node.js中的socket.io的广播消息
  • 分析node事件循环和消息队列

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

上一篇: Vue实现图书管理案例下一篇:浅析JavaScript中的事件委托机制...猜你在找的JavaScript相关文章 html font标签如何设置字体大小?html font标签属性用法介绍2022-05-16vue3+TypeScript+vue-router的使用方法2022-04-16vue3获取当前路由地址2022-04-16如何利用React实现图片识别App2022-04-16JavaScript展开运算符和剩余运算符的区别详解2022-04-16微信小程序中使用vant框架的具体步骤2022-04-16Vue elementUI表单嵌套表格并对每行进行校验详解2022-04-16如何利用Typescript封装本地存储2022-04-16微信小程序中wxs文件的一些妙用分享2022-04-16JavaScript的Set数据结构详解2022-04-16 其他相关热搜词更多phpjavapython程序员loadpost-format-gallery

若转载请注明出处: Nodejs 微信小程序消息推送的实现
本文地址: https://pptw.com/jishu/594157.html
浅析JavaScript中的事件委托机制跟深浅拷贝 C语言中 return 的作用

游客 回复需填写必要信息