一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

服務器之家 - 編程語言 - JavaScript - node.js - Nodejs 微信小程序消息推送的實現

Nodejs 微信小程序消息推送的實現

2022-01-05 16:47Hi__Z node.js

這篇文章主要介紹了Nodejs 微信小程序消息推送的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

選擇或創建訂閱消息模板

登錄到微信小程序里面找到功能->訂閱消息。可以在公共模板庫里選擇需要的模板,如果沒有找到自己需要的也可以自己創建然后等待審核、

選擇完模板查看詳情會得到模板ID,以及發送推送時需要的字段、

Nodejs 微信小程序消息推送的實現

小程序發送訂閱的請求

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 小程序
<Text className='rights-buy' onClick={this.messageSubmit}>
 入駐申請
</Text>
 
// 入駐申請消息訂閱
messageSubmit = () => {
 Taro.requestSubscribeMessage({
  tmplIds: ['SuGMwqyYY9cocuP-LxfElcM3a7ITaF34lKNux6EaE9'],
  success: (res) => {
   // 調用服務端接口,在數據庫寫入一條訂閱記錄
   // this.subscribeDeal()
  }
 })
}

服務端發起推送

推送一般有兩種

  • 手動觸發、
  • 還有就是訂閱消息后,達到某個條件自動觸發推送、

對于第一種情況,就直接調用微信的推送接口就好了。第二中情況稍微麻煩一點,可以加一個定時的任務,或者使用相關的隊列庫、等條件符合了再觸發、

需要注意的地方

  • 發送推送的時候需要用戶的openid,以及模板id。具體的推送內容字段,在第一步模板詳情里面可以查看、
  • 調用微信推送的接口的時候需要access_token,最好緩存一下,頻繁調用會有失效的問題、

獲取access_token并緩存

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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)
  }
 })
}

向微信發送推送請求

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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小程序消息推送內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家! 

原文鏈接:https://juejin.cn/post/6919404252804677645

延伸 · 閱讀

精彩推薦
  • node.jsk8s node節點重新加入master集群的實現

    k8s node節點重新加入master集群的實現

    這篇文章主要介紹了k8s node節點重新加入master集群的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    Scarborought13922022-01-22
  • node.js詳解node.js創建一個web服務器(Server)的詳細步驟

    詳解node.js創建一個web服務器(Server)的詳細步驟

    這篇文章主要介紹了詳解node.js創建一個web服務器(Server)的詳細步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    王佳斌8952021-12-31
  • node.jsnodejs中使用worker_threads來創建新的線程的方法

    nodejs中使用worker_threads來創建新的線程的方法

    這篇文章主要介紹了nodejs中使用worker_threads來創建新的線程的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友...

    flydean程序那些事8982022-01-06
  • node.jslinux服務器快速卸載安裝node環境(簡單上手)

    linux服務器快速卸載安裝node環境(簡單上手)

    這篇文章主要介紹了linux服務器快速卸載安裝node環境(簡單上手),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需...

    mose-x8462022-01-22
  • node.jsrequire加載器實現原理的深入理解

    require加載器實現原理的深入理解

    這篇文章主要給大家介紹了關于require加載器實現原理的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需...

    隱冬8462022-03-03
  • node.jsNode.js ObjectWrap 的弱引用問題

    Node.js ObjectWrap 的弱引用問題

    最近在寫 Node.js Addon 的過程中,遇到了一個問題,然后發現是 ObjectWrap 弱引用導致的,本文介紹一下具體的問題和排查過程,以及 ObjectWrap 的使用問題。...

    編程雜技9852022-01-04
  • node.jsNode.js 中如何收集和解析命令行參數

    Node.js 中如何收集和解析命令行參數

    這篇文章主要介紹了Node.js 中如何收集和解析命令行參數,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋...

    descire8802021-12-28
  • node.js在瀏覽器中,把 Vite 跑起來了!

    在瀏覽器中,把 Vite 跑起來了!

    大家好,我是 ssh,前幾天在推上沖浪的時候,看到 Francois Valdy 宣布他制作了 browser-vite[1],成功把 Vite 成功在瀏覽器中運行起來了。這引起了我的興趣,如...

    前端從進階到入院9282022-01-11
主站蜘蛛池模板: 成年视频在线观看 | 美女扒开两腿露出尿口的视频 | 出水小说| 高h折磨调教古代 | 好男人资源在线观看免费的 | 四虎www.| h片在线看 | 欧美日韩视频在线第一区二区三区 | 91视在线国内在线播放酒店 | 调教开发新婚娇妻放荡 | 亚洲欧美优优色在线影院 | 国产区成人精品视频 | 成人天堂入口网站 | 国产精品亚洲精品日韩已满 | 国产精品毛片高清在线完整版 | 日本激情在线 | sss视频在线精品 | julia ann多人乱战 | chaopeng在线观看 | 亚洲人成在线观看一区二区 | 黄网国产| 精新精新国产自在现拍 | 亚1洲二区三区四区免费 | 国产在线精品香蕉综合网一区 | 免费午夜网站 | 日本无卡码一区二区三区 | 免费视频一级片 | 黑帮少爷爱上我第8集最新 荷兰精品女人性hd 和日本免费不卡在线v | 暖暖视频高清图片免费完整版 | 亚洲国产成人精品无码区99 | 色橹橹 | 日韩影院在线 | 操穴勤 | 91啦中文在线观看 | 国产久热精品 | 高h辣h双处全是肉军婚 | tube日本高清老少配 | 69短视频| 精品国产欧美一区二区三区成人 | 按摩椅play啊太快了h | 日本中文字幕在线视频站 |