消息订阅

qq.subscribeAppMsg

qq.subscribeAppMsg(Object object)

根据是否带有 tmplIds 参数分为 一次性订阅 和 长期订阅:

长期订阅: 向用户发起主动订阅小程序授权请求,调用后会弹窗询问用户是否同意长期订阅消息。如果用户之前已经同意授权,则不会出现弹窗,直接返回成功。

一次性订阅: 向用户发起一次性订阅消息授权请求,调用后会弹窗询问用户是否同意一次性订阅消息。无论用户之前是否同意授权,下次都会出现弹窗。

【注意】

  • 长期订阅消息,调整为 内测 开放。满足内测资格,即可在开发者管理端看到开通入口【消息模板-订阅消息-长期订阅】。
  • 对于已经停用的长期订阅模板,管理端已经进行了标红提示,请从模板库中重新选择合适的模板使用。
  • 后续如果需要修改订阅状态,可通过 qq.openSetting(Object object)跳转至设置页面,让用户手动修改。 更多用法详见 授权

参数

说明: 根据是否带有 tmplIds 参数,分为长期订阅(无 tmplIds 参数)和 一次性订阅(有 tmplIds 参数)

Object object
属性 类型 默认值 必填 说明
tmplIds Array 需订阅的消息模板的id的集合,一次调用最多可订阅3条消息。
subscribe boolean 订阅(true)及取消订阅(false)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
一次性订阅错误码
errCode errMsg 说明
10001 TmplIds can't be empty 参数传空了
10002 Request list fai 网络问题,请求消息列表失败
10003 Request subscribe fail 网络问题,订阅请求发送失败
10004 Invalid template id 参数类型错误
10005 Cannot show subscribe message UI 无法展示 UI,一般是小程序这个时候退后台了导致的
20001 No template data return, verify the template id exist 没有模板数据,一般是模板 ID 不存在 或者和模板类型不对应 导致的
20002 Templates type must be same 模板消息类型 既有一次性的又有永久的
20003 Templates count out of max bounds 模板消息数量超过上限
20004 The main switch is switched off 用户关闭了主开关,无法进行订阅
20005 This mini program was banned from subscribing messages 小程序被禁封

示例代码

// 一次性订阅
qq.subscribeAppMsg({
  tmplIds: ['123','456','789'],
  subscribe: true,
  success(res) {
    console.log("----subscribeAppMsg----success", res);
  },
  fail(res) {
    console.log("----subscribeAppMsg----fail", res);
  }
});

// 长期订阅
qq.subscribeAppMsg({
  subscribe: true,
  success(res) {
    console.log("----subscribeAppMsg----success", res);
  },
  fail(res) {
    console.log("----subscribeAppMsg----fail", res);
  }
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

违规说明

除不能违反运营规范外,还不能违反以下规则,包括但不限于:

  • 不允许恶意诱导用户进行触发操作,以达到可向用户下发模板目的
  • 不允许恶意骚扰,下发对用户造成骚扰的消息
  • 不允许恶意营销,下发营销目的消息

处罚说明

根据违规情况给予相应梯度的处罚,一般处罚规则如下:

  • 第一次违规,删除违规模板以示警告,
  • 第二次违规,封禁接口 7 天,
  • 第三次违规,封禁接口 30 天,
  • 第四次违规,永久封禁接口。

处罚结果及原因以站内信形式告知。

qq.requestSubscribeSystemMessage

qq.requestSubscribeSystemMessage(Object object)

调起小游戏系统订阅消息界面,返回用户订阅消息的操作结果。当用户同意授权后,模板消息会被添加到用户的小游戏设置页,通过 qq.getSetting 接口可获取用户对相关模板消息的订阅状态。

注意事项

参数

Object object
属性 类型 默认值 必填 说明
msgTypeList Array 系统订阅消息类型列表,一次调用最多可订阅3种类型的消息,目前支持两种类型,"SYS_MSG_TYPE_INTERACTIVE"(好友互动提醒)、"SYS_MSG_TYPE_RANK"(排行榜超越提醒)
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)
object.success 回调函数

参数

Object res

属性 类型 说明
errMsg String 接口调用成功时errMsg值为'requestSubscribeSystemMessage:ok'
MSG_TYPE String [MSG_TYPE]是动态的键,即系统订阅消息类型,值为'accept'、'reject','accept'表示用户同意订阅该类型对应的模板消息,'reject'表示用户拒绝订阅该类型对应的模板消息。例如 { errMsg: "requestSubscribeSystemMessage:ok", SYS_MSG_TYPE_INTERACTIVE: "accept" } 表示用户同意订阅'SYS_MSG_TYPE_INTERACTIVE'这条消息
错误码
errCode errMsg 说明
10001 msgTypeList can't be empty 参数传空了
10002 Request list fai 网络问题,请求消息列表失败
10003 Request subscribe fail 网络问题,订阅请求发送失败
10004 Invalid template id 参数类型错误
10005 Cannot show subscribe message UI 无法展示 UI,一般是小游戏这个时候退后台了导致的
20004 The main switch is switched off 用户关闭了主开关,无法进行订阅
20005 This mini program was banned from subscribing messages 小程序被禁封

示例代码

qq.requestSubscribeSystemMessage({
  msgTypeList: ['SYS_MSG_TYPE_INTERACTIVE', 'SYS_MSG_TYPE_RANK'],
  success (res) {
     console.log("----requestSubscribeSystemMessage----success", res);
    // res === {
    //   errMsg: "requestSubscribeSystemMessage:ok",
    //   SYS_MSG_TYPE_INTERACTIVE: "accept",
    //   SYS_MSG_TYPE_RANK: 'reject'
    // }
  }
})
1
2
3
4
5
6
7
8
9
10
11