# 小游戏系统订阅消息
在微信的通知渠道内,我们已为开发者开放可以高效触达用户的一次性订阅消息能力,以便实现服务的闭环并提供更佳的游戏体验。
由于开放数据域的限制,一次性订阅消息能力无法覆盖好友关系链相关场景。因此,平台为好友关系链相关的游戏场景提供了系统订阅消息解决方案。
# 1. 能力介绍
STEP 1: 开发者在游戏场景内设计好友互动的游戏场景。(目前已支持关系链互动 & 排行榜超越场景)
STEP 2: 开发者在游戏内触发对应场景订阅。每个用户每个场景仅需订阅一次。成功订阅一次,持续有效。
STEP 3: 当用户产生互动行为后,平台向用户下发服务通知。无需开发者控制下发逻辑。
# 小游戏普通一次性订阅消息和基于关系链的系统订阅消息区别
能力 | 普通一次性订阅消息 | 基于关系链的系统订阅消息 |
---|---|---|
游戏场景 | 开发者游戏内自定义 | 仅限好友互动、排行榜超越场景 |
订阅场景 | 开发者控制订阅时机 | 开发者控制订阅时机 |
订阅限制 | 可同时订阅3个消息模版 | 可同时订阅3个消息模版 |
订阅成功回调 | 支持 | 支持 |
下发限制 | 订阅一次,发一条 | 订阅一次,发多条(永久有效) |
下发消息逻辑 | 开发者自定时机,后台下发 | 平台下发消息 |
下发消息内容 | 开发者自定义,MP申请模版 | 平台设置内容 |
# 2. 如何设计消息触发场景
# 场景1 好友互动
开发者在游戏内设置与微信好友赠送礼物、偷取道具等互动行为。当有用户成功触发互动行为时,若对方已订阅“好友互动提醒”,则对方会 收到对应的服务通知。每次成功互动,下发一条消息。
每次调用 wx.modifyFriendInteractiveStorage 且用户确认互动后,会产生一条服务通知。接口参数quiet
设置为true
的接口调用,将不会触发服务通知。
# 场景2 排行榜超越
开发者在游戏内为用户提供好友排行榜服务,并在MP后台进行排行榜相关配置。当用户本周期内有战绩且已订阅“排行榜超越提醒”,则当好友战绩超越该用户时,该用户将收到对应的服务通知。当天第一次被超越,下发一条消息。
开发者需在「MP后台-游戏运营工具箱-微信排行榜」配置后,相关的好友超越提醒才会生效。详情可参考配置指引。
请注意 开发者需先提交版本审核及运营素材,才可查看排行榜设置入口。
# 3. API
- 小游戏系统订阅消息接口 wx.requestSubscribeSystemMessage
示例代码:
wx.requestSubscribeSystemMessage({
msgTypeList: ['SYS_MSG_TYPE_INTERACTIVE', 'SYS_MSG_TYPE_RANK'],
success(res) {
console.log(res)
// {
// errMsg: "requestSubscribeSystemMessage:ok",
// SYS_MSG_TYPE_INTERACTIVE: 'accept'
// SYS_MSG_TYPE_RANK: 'reject'
// }
},
fail(res) {
console.log(res)
},
complete(res) {
console.log(res)
} })
用户完成订阅后,系统订阅消息会被添加到用户的小程序设置页,通过 wx.getSetting 接口可获取用户对系统订阅消息的订阅状态。
# 4.最佳实践
我们提供了订阅相关的代码片段,可以预览代码片段体验如何订阅和赠送好友金币