频道黑白名单
更新时间: 2024/03/14 19:21:15
频道黑白名单用于管控频道对服务器成员是否可见。圈组支持选择服务器成员加入黑名单或白名单,或者选择身份组将身份组所有成员批量加入黑名单或白名单。
被加入黑白名单的用户,即为黑白名单成员;被加入黑名单或白名单的身份组即为黑白名单身份组。
功能介绍
频道可见性的管控方式根据频道的查看模式存在区分,具体如下:
频道查看模式 |
可见性管控 |
---|---|
公开 | 通过频道黑名单进行管控,频道对黑名单中的服务器成员不可见,即这些成员无法访问该频道,其他服务器成员均可访问该频道 |
私密 | 通过频道白名单进行管控,频道对白名单中的服务器成员可见,即这些成员可访问该频道,其他服务器成员均无法访问该频道 |
前提条件
已创建频道。
使用限制
频道黑白名单存在如下与黑白名单相关的限制:
- 单个频道的黑白名单成员人数上限,默认为 1000。
- 单个频道可设置的黑白名单身份组的数量上限,默认为 20。
若需要扩展上限,可在控制台配置圈组子功能项(公开私密频道的黑白名单成员数 和 channel 公开私密频道的黑白名单身份组对象数),具体请参考开通和配置圈组功能。
实现方法
管理黑白名单成员
更新频道黑白名单成员
用户可调用updateWhiteBlackMembers
方法更新频道的黑白名单,将服务器成员加入或移出黑白名单,从而管控服务器成员是否可访问频道。
调用该方法需拥有管理黑白名单的权限(QChatRoleAuth.manageBlackWhiteList
)。
示例代码如下:
const qchat = new QChat(options);
qchat.qchatChannel.updateWhiteBlackMembers({
"serverId": "1377422",
"channelId": "1295500",
"type": "black",
"opeType": "remove",
"toAccids": ["ctt1"]
})
分页查询频道黑白名单成员
调用getWhiteBlackMembersPage
方法,可分页查询频道黑白名单。调用时需要传入查询的 serverId
、channelId
、黑白名单类型、查询锚点时间戳timetag
和查询数量限制limit
。
调用该方法需要拥有管理频道黑白名单的权限(QChatRoleAuth.manageBlackWhiteList
)。
示例代码如下:
const qchat = new QChat(options);
qchat.qchatChannel.getWhiteBlackMembersPage({
"serverId": "934978",
"channelId": "869726",
"type": "white",
"timetag": 0,
"limit": 100
})
批量查询频道黑白名单成员
调用getExistingWhiteBlackMembers
方法可根据传入的用户账号(accid
)列表查询其中已被加入的黑白名单的用户。
单次调用最多可传入 100 个 accid
。
示例代码如下:
const qchat = new QChat(options);
qchat.qchatChannel.getExistingWhiteBlackMembers({
"serverId": "934978",
"channelId": "869726",
"type": "white",
"accids": ["ctt1"]
})
管理黑白名单身份组
更新频道黑白名单身份组
调用updateWhiteBlackRole
方法可选择身份组将所选身份组的成员批量加入或移出频道黑白名单,加入黑白名单的身份组即为黑白名单身份组。调用时需要传入服务器 ID(serverId
)、频道 ID(channelId
)、黑白名单类型、黑白名单操作类型和身份组 ID 列表。
调用该方法需要拥有管理频道黑白名单的权限(QChatRoleAuth.manageBlackWhiteList
)。
示例代码如下:
const qchat = new QChat(options);
qchat.qchatChannel.updateWhiteBlackRole({
"serverId": "1377422",
"channelId": "1295500",
"roleId": "1164961",
"type": "black",
"opeType": "remove"
})
分页查询黑白名单身份组列表
调用getWhiteBlackRolesPage
方法可分页查询频道的黑白名单身份组列表。 调用时需要传入服务器 ID、频道 ID、黑白名单类型、查询锚点时间戳 timetag
和查询数量限制 limit
。
调用该方法需要拥有管理频道黑白名单的权限(QChatRoleAuth.manageBlackWhiteList
)。
示例代码如下:
const qchat = new QChat(options);
qchat.qchatChannel.getWhiteBlackRolesPage({
"serverId": "934978",
"channelId": "869726",
"type": "white",
"timetag": 0,
"limit": 100
})
批量查询黑白名单身份组列表
调用getExistingWhiteBlackRoles
方法可根据传入的身份组 ID 列表批量查询其中被加入黑白名单的身份组。
单次调用最多可传入 100 个身份组的 ID。
示例代码如下:
const qchat = new QChat(options);
qchat.qchatChannel.getExistingWhiteBlackRoles({
"serverId": "934978",
"channelId": "869726",
"type": "white",
"roleIds": ["640090"]
})