微信消息訂閱


微信訂閱消息過程詳解

今年年初,微信小程序的模板消息改成了訂閱消息。現在我寫一個流程,方便以后開發的時候照着做

官方文檔:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/subscribe-message.html

訂閱消息和模板消息的區別

簡單用自己的話介紹一下,模板消息是限制在7天內,有次數限制的發送,由用戶完成一個操作后被動的觸發。訂閱消息首先需要用戶進行授權,授權的時候會有彈框提示;用戶每授權一次,就能推送一次。也有不再彈框的選項,但是仍然需要授權這個動作,才可以推送消息,所以訂閱消息也叫一次性訂閱消息。目前也有一次授權一直可以推送的長期消息,但是微信有限制使用的小程序類別,所以普通小程序要想能多次給用戶發送消息,只能引導用戶多次點擊授權。

所以按照官方的意思,有些小程序還是應該把消息推送做到服務號上。

選擇模板

在公眾平台上開通訂閱消息,選擇模板。模板會根據你小程序的類別不同有所不同。

選用一個模板

編排消息的格式,保存即可,會生成一個模板id,等會會用到

獲取下發權限

小程序上需要設置事件,觸發彈框,用戶點擊同意之后才可以消息推送

wx.requestSubscribeMessage({
      tmplIds: ['2hHe9FLnV594nDvrCcksg25wgUT_HwwKNYluXfCqHhY'],
      // 填入剛剛生成的模板id
      success(res){
        console.log(res)
      },fail(res){
        console.log(res)
      }
    })

觸發事件后會調出一個彈窗,用戶點擊允許后,有一個回調

如果用戶勾選了保持選項,下一次就不會彈框

要注意的是,用戶每授權一次,小程序就有發送訂閱消息的權限一次,假如用戶點擊了三次授權,那么小程序就有權限推三條訂閱消息。

服務端調用接口發送訂閱消息

POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
// 請求示例
{
  "touser": "OPENID",  // 用戶openid
  "template_id": "TEMPLATE_ID",  // 模板id
  "data": {
      //消息內容
      "number01": {
          "value": "339208499"
      },
      "date01": {
          "value": "2015年01月05日"
      },
      "site01": {
          "value": "TIT創意園"
      }
  }
}
  • 注意在url中拼上access_token,請求體中使用正確的openid
  • accesstoken需要用appid,appsecret去auth.getAccessToken換,每兩個小時更新一次。openid要wx.login的code使用code2session去換
  • 不同的小程序,同一個用戶的openid不同

data

注意data的內容要對照官方文檔中的填寫

例如我的模板

返回ok就表示發送成功了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM