# 小游戏系统订阅消息

在微信的通知渠道内,我们已为开发者开放可以高效触达用户的一次性订阅消息能力,以便实现服务的闭环并提供更佳的游戏体验。

由于开放数据域的限制,一次性订阅消息能力无法覆盖好友关系链相关场景。因此,平台为好友关系链相关的游戏场景提供了系统订阅消息解决方案。

# 1. 能力介绍

intro

STEP 1: 开发者在游戏场景内设计好友互动的游戏场景。(目前已支持关系链互动 & 排行榜超越场景)

STEP 2: 开发者在游戏内触发对应场景订阅。每个用户每个场景仅需订阅一次。成功订阅一次,持续有效。

STEP 3: 当用户产生互动行为后,平台向用户下发服务通知。无需开发者控制下发逻辑。

# 小游戏普通一次性订阅消息和基于关系链的系统订阅消息区别

能力 普通一次性订阅消息 基于关系链的系统订阅消息
游戏场景 开发者游戏内自定义 仅限好友互动、排行榜超越场景
订阅场景 开发者控制订阅时机 开发者控制订阅时机
订阅限制 可同时订阅3个消息模版 可同时订阅3个消息模版
订阅成功回调 支持 支持
下发限制 订阅一次,发一条 订阅一次,发多条(永久有效)
下发消息逻辑 开发者自定时机,后台下发 平台下发消息
下发消息内容 开发者自定义,MP申请模版 平台设置内容

# 2. 如何设计消息触发场景

# 场景1 好友互动

开发者在游戏内设置与微信好友赠送礼物、偷取道具等互动行为。当有用户成功触发互动行为时,若对方已订阅“好友互动提醒”,则对方会 收到对应的服务通知。每次成功互动,下发一条消息。

每次调用 wx.modifyFriendInteractiveStorage 且用户确认互动后,会产生一条服务通知。接口参数quiet设置为true的接口调用,将不会触发服务通知。

# 场景2 排行榜超越

开发者在游戏内为用户提供好友排行榜服务,并在MP后台进行排行榜相关配置。当用户本周期内有战绩且已订阅“排行榜超越提醒”,则当好友战绩超越该用户时,该用户将收到对应的服务通知。当天第一次被超越,下发一条消息。

开发者需在「MP后台-游戏运营工具箱-微信排行榜」配置后,相关的好友超越提醒才会生效。详情可参考配置指引

请注意 开发者需先提交版本审核及运营素材,才可查看排行榜设置入口。

intro

# 3. API

示例代码:

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.最佳实践

我们提供了订阅相关的代码片段,可以预览代码片段体验如何订阅和赠送好友金币

在开发者工具中预览效果

点击咨询小助手