訂閱消息是小程序一個比較重要的功能,這也是與你客戶打交道的必備功能。通過微信通知客戶,從而爲客戶提供更好地服務。
要通過雲函數來實現訂閱消息,其實挺簡單。也就那麼回事兒~
首先,你需要在小程序後臺開通訂閱消息,然後選用模板。
選用之後,我們通過兩個步驟,來實現訂閱消息的發送。
一、編寫雲函數
二、在小程序端授權並調用雲函數
第一步,雲函數的編寫很簡單,給你個模板直接往裏套內容。
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.subscribeMessage.send({
touser: event.openid, //要發送用戶的openid
page: 'pages/index/index', //用戶通過消息通知點擊進入小程序的頁面
lang: 'zh_CN', //進入小程序查看”的語言類型,支持zh_CN(簡體中文)、en_US(英文)、zh_HK(繁體中文)、zh_TW(繁體中文),默認爲zh_CN
data: { //要發送的數據,這裏需要注意的事項,我在下面說
number01: {
value: '339208499'
},
date01: {
value: '2015年01月05日'
},
site01: {
value: 'TIT創意園'
},
site02: {
value: '廣州市新港中路397號'
}
},
templateId: 'TEMPLATE_ID', //訂閱消息模板ID
miniprogramState: 'developer' //跳轉小程序類型:developer爲開發版;trial爲體驗版;formal爲正式版;默認爲正式版
})
return result
} catch (err) {
return err
}
}
這裏需要注意的是,在填寫data數據時,你需要填寫的key值,爲模板消息給出的key值。看下圖:
雲函數寫好之後,我們需要在小程序端調用雲函數。並且傳入訂閱消息需要發送的數據:
js:
wx.cloud.callFunction({
name:"sendCommentInfo",
data:{
openid: , //傳入需要發送信息的用戶openid
commentPeople:******, //下面這些數據是你需要發送的內容
commentContent: *****,
commentTime:******,
commentTitle:********,
_id:********
},
success:res=>{
console.log(res)
}
})
完美,完成了雲函數和小程序端的調用雲函數代碼。我們僅需最後一步,即可實現訂閱消息的發送。
最後一步很關鍵,也很重要。那就是用戶授權模板消息的訂閱。
現在微信訂閱消息的機制是隻有用戶授權,消息才能夠發送,並且授權一次只能發送一條信息。如果用戶點擊保持以上選擇,授權了此訂閱消息,那麼就能夠一直收這個信息,相反,如果用戶點擊保持以上選擇,拒絕了此訂閱消息,那麼就永遠不能接收此訂閱消息。
授權代碼:
wx.requestSubscribeMessage({
tmplIds: [''], //這裏填寫你的模板ID
success:res=>{
wx.showToast({
title: '已開啓',
})
},
fail:res=>{
wx.showToast({
title: '已拒絕',
})
}
})
好了,經過以上幾個簡單的步驟,就可以實現訂閱消息了。最後給大家看下效果:
最後,再給一點提示吧。就是調用雲函數時,傳數據給模板消息,數據格式要與你的模板消息格式相同。否則會報錯!
下面,給一些常出錯的原因。可在調用雲函數之後打印參數,在參數內看結果。
有問題可在下方留言~