wx.requestSubscribeMessage(Object object) 和 wx.requestSubscribeDeviceMessage(Object object) 这两个有什么区别
在微信官方文档中:
订阅消息接口:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeMessage.html
订阅设备消息接口:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/subscribe-message/wx.requestSubscribeDeviceMessage.html
官方文档看的是一个晕乎乎的,下面是自己的总结:
requestSubscribeMessage | requestSubscribeDeviceMessage | |
|---|---|---|
| 订阅对象 | 某项服务/业务(如订单、活动) | 某个物理硬件(如摄像头、扫地机) |
| 使用场景 | 通用业务通知 | 智能硬件告警/状态推送 |
| 需要什么参数 | tmplIds(模板ID列表) |
sn + snTicket + modelId + tmplIds |
| 安全校验 | 无额外校验 | 必须通过 getsnticket 验明设备正身 |
| 后台要求 | 申请消息模板即可 | 必须开通「硬件设备」能力并注册设备 |
| 消息形式 | 普通服务通知 | 强提醒(类似微信来电,可突破免打扰) |
| 用户感知 | "是否接收XX消息" | "是否添加该设备的提醒" |
通俗的讲:
订阅消息,就是普通的预定和推送消息。
wx.requestSubscribeMessage({
tmplIds: ['tmpl_order_shipped'],
success(res) {
// res['tmpl_order_shipped'] === 'accept'
}
})
发送订阅消息 文档:https://developers.weixin.qq.com/miniprogram/dev/server/API/mp-message-management/subscribe-message/api_sendmessage.html POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
此方法中消息模板有如下分类:
| 一次性订阅 | 长期订阅 | |
|---|---|---|
| 用户授权一次,你能发几次 | 1 次,发完就没了 | 无数次,长期有效 |
| 模板数量上限 | 50 个 | 25 个 |
| 使用门槛 | 几乎无门槛,所有小程序可用 | 只有特定类目可用(政务、医疗、交通、教育等) |
| 用户感受 | 弹窗频繁,每次都要点"接收" | 授权一次后静默接收,不打扰 |
普通的用户基本无法使用长期订阅,只能使用一次性订阅,总结下来这个功能对于普通用户来说很鸡肋,用处不大。
订阅设备消息,就是特指硬件设备提供商使用的,硬件购买方(使用方)是无法使用的,硬件要在微信小程序的后台进行添加的,腾讯官方要进行审核的,企业是否有硬件制造提供的资质。
如果是硬件提供商,要关注硬件的使用状况,就可以使用这个接口,一般人用不到这个接口。
wx.requestSubscribeDeviceMessage({ sn: 'CAM_001', // 设备序列号 snTicket: 'ticket_xyz...', // 服务端换的票据 modelId: 'model_abc123', // 后台注册的设备型号 tmplIds: ['tmpl_device_alert'], success(res) { // 用户必须手动开启"强提醒"才能收到 } })
发送设备消息 文档:https://developers.weixin.qq.com/miniprogram/dev/server/API/hardware-device/api_sendhardwaredevicemessage.html POST https://api.weixin.qq.com/cgi-bin/message/device/subscribe/send?access_token=ACCESS_TOKEN
浙公网安备 33010602011771号