tt.requestSubscribeMessage
基础库 1.73.0 开始支持本方法,低版本需做兼容处理。支持宿主:头条,抖音。 订阅功能介绍及使用方式见文档:订阅消息功能。
调起客户端订阅消息界面,返回用户订阅消息的操作结果。当用户勾选了订阅面板中的 “总是保持以上选择,不再询问” 时,或是点击了订阅面板中 “拒绝,不再询问” 时,模板消息会被添加到用户的小程序设置页,用户可以在设置页面进行管理。
语法
tt.requestSubscribeMessage(options)
参数说明
options
为 object 类型,属性如下:
属性名 | 类型 | 默认值 | 必填 | 说明 | 最低支持版本 |
---|---|---|---|---|---|
tmplIds | Array | 是 | 需要订阅的消息模板的 id 的集合,最多支持传入三个 tmplId | 1.73.0 | |
success | Funtion | 否 | 接口调用成功的回调函数 | 1.73.0 | |
complete | Funtion | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | 1.73.0 | |
fail | Funtion | 否 | 接口调用失败的回调函数 | 1.73.0 |
回调成功
回调成功参数为 object 类型,属性如下:
属性 | 类型 | 说明 |
---|---|---|
errMsg | string | "requestSubscribeMessage:ok" |
TEMPLATE_ID | string | [TEMPLATE_ID]为模板 id,取值详见 TEMPLATE_ID |
TEMPLATE_ID
值 | 说明 |
---|---|
accept | 用户同意订阅该条 id 对应的模板消息 |
reject | 用户拒绝订阅该条 id 对应的模板消息 |
ban | 表示已被后台封禁 |
fail | 表示该条 id 对应的模版消息授权失败 |
示例:
// 以下返回值表示用户同意订阅 [YOUR_TEMPLATE_ID] 这条消息
{
"errMsg": "requestSubscribeMessage:ok",
"[YOUR_TEMPLATE_ID]": "accept"
}
回调失败
object 类型,属性如下:
属性名 | 类型 | 说明 | 最低支持版本 |
---|---|---|---|
errMsg | string | 接口调用失败错误信息 | 1.73.0 |
errCode | number | 接口调用失败错误码,详见错误码 | 1.73.0 |
错误码
errCode | errNo | errMsg | 说明 |
---|---|---|---|
1001 | 暂时未加 | no permission | 没有权限(白名单配置,暂无需关注) |
1002 | 20000 | invalid params | 参数不合法 |
1003 | 20000 | template counts out of max bounds | 模版消息个数超过限制(最多 3 个) |
1004 | 21101 | template not exist or invalid | 模版消息不存在或不合法 |
1005 | 21102 | template type not the same | 模版消息类型不一致 |
2001 | 21103 | network error | 网络问题 |
2002 | 21104 | service error | 服务错误 |
3001 | 21105 | auth deny | 拒绝授权 |
3002 | 21106 | login deny | 拒绝登录 |
4001 | 21107 | request count out of limit | 请求次数超过限制 (二期弹窗频控取消,不会再出现) |
4002 | 21108 | main switch off | 总开关关闭 |
4003 | 21109 | templates switches all off | 请求模版消息开关均关闭 |
4004 | 21110 | forbidden | 后台封禁 |
暂时未加 | 暂时未加 | not supported by current application | 宿主不支持(目前仅支持头条、抖音) |
5001 | 10401 | Internal error: ${附加信息} | 内部错误 |
扫码体验
注意:该 demo 中的模版为「头条订阅模板」,请用 今日头条 扫码体验,如需体验其他模版,可参考 订阅消息功能-使用说明。
请使用字节宿主APP扫码
代码示例
<!-- index.ttml -->
<button type="primary" bindtap="subscribeMessage">订阅消息</button>
// index.js
Page({
subscribeMessage() {
tt.requestSubscribeMessage({
tmplIds: [], // 需要填入开放平台申请的模版id,支持最多3个同类型模版
success(res) {
//订阅成功
console.log("订阅成功", res);
},
fail(error) {
//订阅失败
console.log("订阅失败, 错误详情: ", error);
tt.showToast({
title: "订阅失败",
icon: "fail",
});
},
complete(res) {
//订阅完成
console.log("tt.requestSubscribeMessage API调用完成: ", res);
},
});
},
});
Bug & Tip
- Tip:只允许在以下时机中调用:bindtap 事件、支付回调函数。
- Tip:最多一次可以传入三个模版 ID。
- Tip:模版分为一次性模版和长期性模版,一次性模版 ID 和长期性模版 ID 不可同时使用。
点击纠错
评价此篇文档