升級微信訂閱消息必知的 5 個細節 | 附實戰教程

前言

微信官方爲提高小程序模板消息的使用體驗,調整了模板消息的下發條件。原有的模板消息將升級爲「訂閱消息」,而模板消息接口於2020 年 4 月 10 日下線(在 2020 年 1 月 10 日之後新發布的小程序只能使用訂閱消息),屆時將沒法再使用原接口推送模板消息,所以須要開發者及時進行調整。html

△ 微信官方最新消息node

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

不管是模板消息,仍是如今新的訂閱消息,發送小程序消息都是經過三步完成:小程序

  • 獲取模板 ID(即建立模板)
  • 獲取下發的權限
  • 發送消息

從步驟來看,只有「獲取下發的權限」這一步是有變化的,其他都是相同的。segmentfault

模板消息

當用戶在小程序內完成特定的交互行爲(支付或提交表單行爲)來收集 formid,後續利用該 formid 能夠在 7 天內任意時間給該用戶推送模板消息。微信小程序

  • 發送模板消息必定要攜帶 formid
  • 推送的有效時間爲 7 天
  • 用戶只能被動選擇接收,下發的權利掌握在開發者手上

訂閱消息

當用戶在小程序內點擊特定按鈕後會彈出申請訂閱彈窗,贊成後小程序可在後續任意時間給該用戶推送服務通知。api

  • 發送訂閱消息須要用戶先進行受權
  • 受權一次可發送一條服務通知,能夠重複受權,每一次受權都會單獨保存爲一條記錄
  • 推送時間不受限制
  • 用戶自主選擇接受,下發的權利掌握在用戶手上

小結

以前的「模板消息」下發是不須要用戶受權的,理論上能夠設計成用戶點擊一次就得到一次權限,這個過程當中用戶是無感知的,只要有了 formid,在公共模板庫裏有的都能下發,且數據類型沒有限制,用戶收到什麼消息徹底取決於開發者。數組

如今的「訂閱消息」更像是一個開關,須要用戶主動點擊受權以後才能獲取下發消息權限,用戶接不接收消息,接收什麼訂閱消息,決定權在用戶手裏。另外訂閱消息還嚴格控制了數據類型和長度,不符合要求的將沒法下發。(血淚教訓啊,而且你只有在添加模板以後才能知道這個字段是屬於什麼類型,對於帶變量的模板消息千萬要注意變量是否符合字段要求)。微信

訂閱消息使用場景

「模板消息」與「訂閱消息」雖然都是爲了召回用戶以及推送消息提醒,但因爲模板消息推送的時間限制過於嚴格,相對於一些服務週期較長的小程序來講,7 天的限制不能提供完整的服務。app

例如機票類的小程序,用戶從訂票到出行,這間隔很大多是超過 7 天的,若是想給用戶發送「航班延誤提醒」等消息,頗有多是沒法實現的。所以,對於低頻、長線服務的小程序來講,「訂閱消息」是很是重要的。函數

另外,有少許的小程序會把「模板消息」當成營銷工具,用來推送廣告,誘導用戶點擊,這極大影響用戶的使用體驗。「訂閱消息」的上線完美的彌補了這兩個問題。

與「模板消息」不一樣,如今是須要用戶受權訂閱後才能下發消息,對於剛需的服務場景,例如外賣小程序的「外賣派送消息」以及電商小程序的「到貨通知」等場景,訂閱率都是比較高的。

而非剛需的服務場景,則能夠對用戶進行「引導訂閱」,因此首先要讓用戶主動觸發訂閱。例如,對電商小程序來講,能夠引導用戶訂閱心儀商品的「降價通知」;而內容類小程序,能夠引導用戶訂閱其感興趣的話題等。

升級訂閱消息的防坑指南

1.調起訂閱彈窗

觸發用戶訂閱,微信小程序提供的 api 是:wx.requestSubscribeMessage,觸發條件必須是用戶點擊行爲(bindtap 事件)或發起支付回調後才能調起訂閱消息界面。像 form 表單的 bindsubmit 事件就不行,若是原先在 form 表單中獲取 formid 要升級成訂閱消息,這裏提供兩個思路參考:

  • 將 form 表單的 bindsubmit 事件改爲 bingtap 事件。手動獲取 form 表單的數據,經過 bindtap 事件調起訂閱消息界面,完成訂閱後再提交表單。(適合表單數據量較少時用)
  • 在 bindsubmit 事件中增長引導用戶訂閱的彈窗。例如,使用 wx.showModal(回調函數是 bindtap 事件),經過用戶是否確認來調起訂閱消息界面,當完成訂閱後再完成表單提交。

2.調起訂閱彈窗同時跳轉頁面

當用戶點擊按鈕觸發訂閱彈窗的時候,同時跳轉頁面的話,在安卓上是能正常在已跳轉的頁面顯示訂閱彈窗,在 iOS 上則不會正常顯示,而是在上一個頁面顯示彈窗。因此從用戶體驗角度以及爲了能正常收集到訂閱記錄,必須等完成訂閱後才進行跳轉。

3.用戶勾選「老是保持以上選擇,再也不詢問」

當用戶勾選了「老是保持以上選擇,再也不詢問」時,那麼將不再會喚起這個彈窗。同時,若是選擇「取消」,那麼之後每次調用這個 api 的時候,都會自動拒絕;若是選擇「容許」,則每次都會自動容許受權。

目前,可使用 wx.getSetting() 來獲取用戶訂閱消息的訂閱狀態,詳情可查看官方文檔。所需基礎版本庫爲 2.10.0 ,即微信版本 7.0.9 及以上。

在一些特定元素觸發申請訂閱權限的條件下(好比上述經過 wx.showModal 來喚起訂閱界面),能夠根據訂閱狀態來判斷是否觸發。使用 wx.getSetting() ,能夠獲取用戶是否有勾選「老是保持以上選擇,再也不詢問」以及對該條訂閱消息的訂閱狀態。當 wx.getSetting() 返回用戶拒絕訂閱該條訂閱消息就不顯示 wx.showModal 的引導訂閱彈窗。

4.一次訂閱能夠收集幾條訂閱消息?

wx.requestSubscribeMessage 一次調用最多可訂閱 3 條消息,即 tmplIds 最多爲 3 個。iOS 客戶端 7.0.6 版本、Android 客戶端 7.0.7 版本以後的一次性訂閱/長期訂閱才支持多個模板消息,iOS 客戶端 7.0.5 版本、Android 客戶端 7.0.6 版本以前的一次訂閱只支持一個模板消息。詳情可看官方文檔

5.發送訂閱消息的參數限制

發送訂閱消息必須嚴格按照「訂閱消息參數值內容限制說明」來進行填寫。

建立模板的時候,根據選擇的關鍵字不一樣,在發送訂閱消息的時候,需按照上述表格的說明進行填寫內容,如不符合參數限制的,則會發送失敗。例如,圖上的 name.DATA 是10 個之內的純漢字或 20 個之內的純字母或符號,若是參數值是 知曉雲 2020 則會報 data.name1.value invalid 錯誤;phrase.DATA 的參數值若是超過 5 個漢字一樣是報錯。

經過以上的防坑指南,可讓小程序開發者少走些彎路,在 deadline 的最後一刻,也能輕鬆快速完成升級。接下來將經過知曉雲的「知曉推送」,手把手教你如何接入訂閱消息。

知曉推送打通不一樣平臺間的消息推送障礙,運營者能夠同時將通知推送至微信小程序、QQ 小程序、支付寶小程序、Android、iOS 等多個平臺。無需編碼,開箱即用,一站式完成用戶觸達。輕鬆完成消息推送、用戶轉化、數據分析等多個層面的工做。」

接入訂閱消息

開發者能夠在知曉推送頁面進入訂閱消息接入嚮導:

前三步與接入微信相似,詳情可查看微信小程序接入,在「接入 SDK」處須要填入 AppScret,AppSecret 用於開通模板消息服務,在小程序後臺「設置 - 開發設置」中查看。

根據引導進行上報訂閱消息。

經過校驗後即完成接入。

獲取模板 ID

在模板庫中搜索合適的模板,點擊選用,選擇須要的關鍵詞後提交便可完成模板建立。

在「個人模板」能夠查看、添加和刪除模板,在這裏獲取模板 ID。

獲取下發權限

微信小程序提供了 wx.requestSubscribeMessage 接口來發起申請訂閱權限界面。

上報訂閱狀態的接口

知曉雲提供了 wx.BaaS.subscribeMessage(options) SDK 來進行收集訂閱狀態。

參數說明

Subscription

用戶發生點擊行爲或者發起支付回調後,調起訂閱消息界面,經過 SDK 上報訂閱狀態。

示例代碼

在函數內咱們會調用微信 API wx.requestSubscribeMessage 申請發送訂閱權限,彈窗出來後,咱們會收到 success 回調,當用戶在彈窗贊成訂閱後,即上報訂閱結果爲 accept ,將訂閱的 template_id (模板 ID)和 subscription_type(訂閱類型)存入 subscription 數組中,最後在調用 SDK 進行上報便可。

  • 目前只支持一次性訂閱;
  • 須要上報訂閱結果爲 accept 的模版 ID。

在「訂閱記錄」查看和操做收集到的訂閱記錄。

發送訂閱消息

  1. 在線發送
  2. 經過觸發器觸發
  3. 雲函數發送

1.在線發送

經過在「訂閱消息」給用戶在線發送訂閱消息。填入所需的內容,能夠選擇當即發送或定時發送。

智能過濾

在篩選目標用戶時,建議開發者使用智能過濾服務,以保證模板消息的觸達率和轉化率。

2.經過觸發器觸發

建立觸發器

點擊「引擎」-「觸發器」便可建立新的觸發器。

觸發類型:即觸發源,每一個觸發器都只能選定一種觸發類型,不一樣的觸發類型可執行的動做選項也不同。

設置條件

當選定觸發類型後,開發者須要指定觸發條件來觸發後續動做的執行,觸發條件與觸發類型一一相關,當知足觸發條件的時候便可觸發該觸發器。

設置動做

動做類型選擇「發送訂閱消息」,與在線發送相似,填入相關內容,經過模板校驗後便可完成觸發器建立。若是所示,updated_at 存的是字符串,可使用 {{updated_at | date:"Y年m月d日 H:i"}} 這種 filter 形式進行轉換。另外能夠點擊「添加動做」繼續設置動做。

更多內容可查看知曉雲-觸發器教程

3.經過雲函數發送

建立雲函數

經過「引擎」-「雲函數」-「添加」便可完成雲函數的建立。

示例代碼

編寫完雲函數後點擊保存即完成雲函數的修改。

經過觸發器搭配雲函數使用

當須要發送的訂閱消息邏輯較爲複雜時,能夠經過編寫雲函數進行觸發。

詳情可參考開發文檔中的章節《使用雲函數發送訂閱消息》。

注意事項

發送訂閱消息必須嚴格按照「訂閱消息參數值內容限制說明」來進行填寫,「在線發送」以及「觸發器」設置動做中已有模板對應的參數值限制。如參數值錯誤,將致使發送失敗,發送詳情可在「知曉推送」-「日誌」處查看。

訪問「知曉雲」,讓你的小程序開發快人一步

掃描下方二維碼,關注知曉雲公衆號,回覆「學技術」,便可得到更多小程序開發教程。
mincloud2019.png

相關文章
相關標籤/搜索