關於小遊戲訂閱消息的解讀
- 2019 年 10 月 6 日
- 筆記
最近有點忙,更新慢了,今天隨機解讀一個小遊戲的新特性。

相信不少同學已經收到小遊戲「訂閱消息能力」的內測邀請了,這個能力簡而言之就是:
讓小遊戲能給用戶發服務通知。
整個部署過程很簡單,但實現的效果卻是很重要,未來可以實現諸如「排名下降提醒」、「體力恢復提醒」、「活動開啟通知」、「任務完成提醒」等一系列有助於迴流的功能,顯然能為小遊戲提高留存。
所以花叔專門做了一個技術demo,研究了它的具體用法,完整的演示影片在這裡:
接下來本文主要介紹一下它的應用場景、使用條件和使用方法。
應用場景:
該特性由兩項功能組成,分別是「消息訂閱」以及「消息發送」功能,可用於各種遊戲功能的提醒,但僅限於用戶主動觸發的訂閱場景。

使用條件:
1.需用戶主動點擊遊戲內某按鈕或元素進行訂閱
2.訂閱提示框樣式無法自定義
3.只能用官方給定的通知模板
使用方法:
1. 進入mp後台,開通「訂閱消息」功能(目前在灰度測試,部分小遊戲的mp後台還看不到這個菜單項)。點擊菜單欄左側菜單中「功能」欄目下的「訂閱消息」:

按照提示,選擇行業欄目進行開通

2. 開通成功後,可以開始選擇並製作模板。
具體步驟如下:
首先在模板庫中選用現成的訂閱模板(目前貌似還沒法申請自定義模板),

點擊「選用」後,可以配置模板要出現的內容:

訂閱模板製作完畢(不能修改)後,會得到一個模板ID

3. 在小遊戲頁面中給元素定義touchend事件(不能直接調用,需要在用戶的觸摸結束行為的回調中調用),在事件中執行以下程式碼:

關鍵程式碼:
wx.requestSubscribeMessage({ tmplIds: [id],//剛申請的訂閱模板id success(res) { // res{ // errMsg: "requestSubscribeMessage:ok", // zun-LzcQyW-edafCVvzPkK4de2Rllr1fFpw2A_x0oXE: 'accept' // EXo0x_A2wpFf1rllR2ed4KkPzvVCfade-WyQczL-nuz: 'reject' // } if (res[id] == 'accept') { //用戶同意了訂閱 wx.showToast({ title: '訂閱成功' }) } else { //用戶拒絕了訂閱或當前遊戲被禁用訂閱消息 wx.showToast({ title: '訂閱失敗' }) } }, fail(res) { console.log(res) }, complete(res) { console.log(res) } })
頁面上點擊該元素的時候會彈出系統的默認彈框:

4.只要用戶點擊了「允許」,那麼開發者在服務端調用官方的「消息發送」介面程式碼
wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + token, method: 'post', data: { "touser": "oQJaf4t9ckXHDJprWcsolMcPUYks", "template_id": id, "page": "index", "data": { "number2": { "value": "1" }, "number3": { "value": "2" }, "date4": { "value": "2019年09月18日" } } }, success(e){ console.log(e) } })
程式碼執行後,微信聊天框就會收到一個服務通知,點擊該服務通知可再次回到小遊戲中

至此,那就能實現小遊戲的消息推送功能了,整個過程很簡單,相信這個功能很快就會出現在各大小遊戲中。