根据是否带有 tmplIds 参数分为 一次性订阅 和 长期订阅:
长期订阅: 向用户发起主动订阅小程序授权请求,调用后会弹窗询问用户是否同意长期订阅消息。如果用户之前已经曝光过弹窗,则弹窗不会再次出现,直接返回成功。
一次性订阅: 向用户发起一次性订阅消息授权请求,调用后会弹窗询问用户是否同意一次性订阅消息。无论用户之前是否同意授权,下次都会出现弹窗。
【注意】
更多用法详见 授权。
说明: 根据是否带有 tmplIds 参数,分为长期订阅(无 tmplIds 参数)和 一次性订阅(有 tmplIds 参数)
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
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);
}
});
除不能违反运营规范外,还不能违反以下规则,包括但不限于:
根据违规情况给予相应梯度的处罚,一般处罚规则如下:
处罚结果及原因以站内信形式告知。
调起小游戏系统订阅消息界面,返回用户订阅消息的操作结果。当用户同意授权后,模板消息会被添加到用户的小游戏设置页,通过 qq.getSetting 接口可获取用户对相关模板消息的订阅状态。
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
msgTypeList | Array | 是 | 系统订阅消息类型列表,一次调用最多可订阅3种类型的消息,目前支持两种类型,"SYS_MSG_TYPE_INTERACTIVE"(好友互动提醒)、"SYS_MSG_TYPE_RANK"(排行榜超越提醒) | |
success | function | 否 | 接口调用成功的回调函数 | |
fail | function | 否 | 接口调用失败的回调函数 | |
complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
属性 | 类型 | 说明 |
---|---|---|
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'
// }
}
})