微信公眾號
微信公眾號分為兩種類型:訂閱號和服務(wù)號,它們在功能和使用方式上有一些區(qū)別。
1.訂閱號(Subscription Account):
主要用于向用戶提供信息、資訊、新聞等更新性內(nèi)容。
每天可以發(fā)送1條群發(fā)消息給所有關(guān)注者。
發(fā)送的消息在用戶的訂閱號消息列表中按時間排序顯示,不會直接發(fā)送到用戶的主要聊天列表。
用戶關(guān)注后,默認(rèn)不會收到訂閱號的模板消息和客服消息。
2.服務(wù)號(Service Account):
提供更多的功能,可以與用戶進(jìn)行交互和提供個性化服務(wù)。
可以通過模板消息和客服消息與用戶進(jìn)行互動,推送更多種類的消息類型。
可以每月發(fā)送4條群發(fā)消息給所有關(guān)注者,且每條消息可以發(fā)送給更多用戶。
發(fā)送的消息會直接顯示在用戶的主要聊天列表中。
微信公眾號的類型是在注冊時選擇的,一旦選擇了訂閱號或服務(wù)號,無法直接轉(zhuǎn)換。如果您主要是提供資訊和更新性內(nèi)容,訂閱號可能更適合;如果您需要與用戶進(jìn)行更多的互動和提供個性化服務(wù),服務(wù)號則更適合。
訂閱消息
訂閱消息,一般更適用于小程序或小游戲,程序按照一定的觸發(fā)規(guī)則,來給用戶推送已訂閱的消息。
微信訂閱消息,官方文檔
訂閱步驟:
1.設(shè)置訂閱模板
2.前端授權(quán)訂閱
wx.requestSubscribeMessage({
tmplIds: tmplIds,
success (res) {
console.log("訂閱消息成功:",res);
let temlIdsOk:string[]=[];
for(let tmplId of tmplIds){
//1.accept 接受 2.reject 拒絕 3.ban 被后臺禁用 4.filter 該模板因為模板標(biāo)題同名被后臺過濾
if(res[tmplId]=="accept"){
temlIdsOk.push(tmplId);
}
}
if(func)func(temlIdsOk);
},
fail(res){
console.log("訂閱消息失敗:",res,res.errCode);
/*10001 參數(shù)傳空了
10002 網(wǎng)絡(luò)問題,請求消息列表失敗
10003 網(wǎng)絡(luò)問題,訂閱請求發(fā)送失敗
10004 參數(shù)類型錯誤
10005 無法展示 UI,一般是小游戲這個時候退后臺了導(dǎo)致的
20001 沒有模板數(shù)據(jù)
20002模板消息類型 既有一次性的又有永久的
20003 模板消息數(shù)量超過上限
20004 用戶關(guān)閉了主開關(guān),無法進(jìn)行訂閱
20005 小游戲被禁封
*/
wx.getSetting({
withSubscriptions: true,
success(res) {
//具體模板 接受狀態(tài)
res.subscriptionsSetting[模板id]
//總開關(guān) 開啟狀態(tài)
const mainSwitch = res.subscriptionsSetting.mainSwitch;
console.log('消息通知總開關(guān)狀態(tài):',res, mainSwitch);
},
fail(err) {
console.error('獲取授權(quán)設(shè)置失?。?, err);
}
});
}
})
訂閱消息有兩種方式:一次性訂閱和長期訂閱。
一次性訂閱(Once Subscription):
1.適用于臨時性的訂閱需求,例如用戶只需要接收一次性的通知或事件提醒。
2.選擇訂閱某個特定的模板消息,沒有勾選“總是保持以上選擇”。
3.用戶在收到一次性訂閱消息后,將無法再次收到相關(guān)的訂閱消息。
長期訂閱(Long-term Subscription):
1.適用于長期性的訂閱需求,用戶需要持續(xù)接收某個特定類型的消息推送。
2.選擇訂閱某個模板消息,并勾選“總是保持以上選擇”。
3.用戶可以隨時在微信設(shè)置中取消對某個或所有模板消息的訂閱權(quán)限,或者重新進(jìn)行訂閱選擇。
訂閱后,會出現(xiàn)在小程序,設(shè)置列表
3.后端發(fā)送消息:
首先須在MP后臺:開發(fā) -> 開發(fā)管理 -> 開發(fā)設(shè)置 -> 開啟消息推送
開啟消息推送,需要一次簡單驗證:
1.填寫好url和token
2.編寫驗證代碼,驗證服務(wù)器地址的有效性
private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr= $_GET["echostr"];
//填寫的TOKEN
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if ($tmpStr == $signature ) {
return $echostr;
} else {
return "驗證失敗";
}
}
3.點擊綠色按鈕,提交,微信會訪問一次第一步填寫的url,若是返回的echostr,則配置成功。
4.后端推送訂閱消息
//請求地址
POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
//請求參數(shù)
//調(diào)用憑證
access_token
//推送用戶 openId
touser
//模板id 需用戶訂閱才可以
template_id
//模板數(shù)據(jù)
data { "key1": { "value": any }
5.微信收到消息:
消息會出現(xiàn)在"服務(wù)通知"里邊。文章來源:http://www.zghlxwxcb.cn/news/detail-737429.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-737429.html
到了這里,關(guān)于微信小程序 如何訂閱消息?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!