微信公众号
微信公众号分为两种类型:订阅号和服务号,它们在功能和使用方式上有一些区别。
1.订阅号(Subscription Account):
主要用于向用户提供信息、资讯、新闻等更新性内容。
每天可以发送1条群发消息给所有关注者。
发送的消息在用户的订阅号消息列表中按时间排序显示,不会直接发送到用户的主要聊天列表。
用户关注后,默认不会收到订阅号的模板消息和客服消息。
2.服务号(Service Account):
提供更多的功能,可以与用户进行交互和提供个性化服务。
可以通过模板消息和客服消息与用户进行互动,推送更多种类的消息类型。
可以每月发送4条群发消息给所有关注者,且每条消息可以发送给更多用户。
发送的消息会直接显示在用户的主要聊天列表中。
微信公众号的类型是在注册时选择的,一旦选择了订阅号或服务号,无法直接转换。如果您主要是提供资讯和更新性内容,订阅号可能更适合;如果您需要与用户进行更多的互动和提供个性化服务,服务号则更适合。
订阅消息
订阅消息,一般更适用于小程序或小游戏,程序按照一定的触发规则,来给用户推送已订阅的消息。
微信订阅消息,官方文档
订阅步骤:
1.设置订阅模板
2.前端授权订阅
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 该模板因为模板标题同名被后台过滤
if(res[tmplId]=="accept"){
temlIdsOk.push(tmplId);
}
}
if(func)func(temlIdsOk);
},
fail(res){
console.log("订阅消息失败:",res,res.errCode);
/*10001 参数传空了
10002 网络问题,请求消息列表失败
10003 网络问题,订阅请求发送失败
10004 参数类型错误
10005 无法展示 UI,一般是小游戏这个时候退后台了导致的
20001 没有模板数据
20002模板消息类型 既有一次性的又有永久的
20003 模板消息数量超过上限
20004 用户关闭了主开关,无法进行订阅
20005 小游戏被禁封
*/
wx.getSetting({
withSubscriptions: true,
success(res) {
//具体模板 接受状态
res.subscriptionsSetting[模板id]
//总开关 开启状态
const mainSwitch = res.subscriptionsSetting.mainSwitch;
console.log('消息通知总开关状态:',res, mainSwitch);
},
fail(err) {
console.error('获取授权设置失败:', err);
}
});
}
})
订阅消息有两种方式:一次性订阅和长期订阅。
一次性订阅(Once Subscription):
1.适用于临时性的订阅需求,例如用户只需要接收一次性的通知或事件提醒。
2.选择订阅某个特定的模板消息,没有勾选“总是保持以上选择”。
3.用户在收到一次性订阅消息后,将无法再次收到相关的订阅消息。
长期订阅(Long-term Subscription):
1.适用于长期性的订阅需求,用户需要持续接收某个特定类型的消息推送。
2.选择订阅某个模板消息,并勾选“总是保持以上选择”。
3.用户可以随时在微信设置中取消对某个或所有模板消息的订阅权限,或者重新进行订阅选择。
订阅后,会出现在小程序,设置列表
3.后端发送消息:
首先须在MP后台:开发 -> 开发管理 -> 开发设置 -> 开启消息推送
开启消息推送,需要一次简单验证:
1.填写好url和token
2.编写验证代码,验证服务器地址的有效性
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
//请求参数
//调用凭证
access_token
//推送用户 openId
touser
//模板id 需用户订阅才可以
template_id
//模板数据
data { "key1": { "value": any }
5.微信收到消息:
消息会出现在"服务通知"里边。文章来源:https://www.toymoban.com/news/detail-737429.html
文章来源地址https://www.toymoban.com/news/detail-737429.html
到了这里,关于微信小程序 如何订阅消息?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!