频道分组黑白名单
更新时间: 2024/03/14 19:21:11
本文介绍频道分组黑白名单的技术原理、实现方法以及相关的示例代码。
技术原理
网易云信即时通讯 NIM QChat Web SDK 的QChatChannelServiceInterface
接口提供管理频道分组黑白名单(包括名单成员和名单身份组)的方法。
频道分组可见机制
频道分组黑白名单与频道分组类型(公开/私密)共同判定频道分组是否对服务器成员可见。
- 公开频道分组:如果服务器成员被加入公开频道分组的黑名单或黑名单身份组,那么该频道分组对该成员不可见,反之可见。
- 私密频道分组:如果服务器成员被加入私密频道分组的白名单或白名单身份组,那么该频道分组对该成员可见,反之不可见。
权限要求
调用管理频道黑白名单的相关方法,需要管理黑白名单的权限(即QChatRoleAuth
枚举中的manageBlackWhiteList
)
实现方法
本节以服务器所有者和服务器成员的交互为例,介绍服务器成员更新频道分组黑白名单的实现流程。
- 更新频道分组黑白名单身份组的实现流程,与更新黑白名单的实现流程类似,本文不做详细介绍。
- 服务器所有者拥有全量权限,可直接调用
updateChannelCategoryWhiteBlackMembers
和updateChannelCategoryWhiteBlackRole
方法分别更新频道分组黑白名单和黑白名单身份组。 - 用户更新频道分组黑白名单身份组/成员后,可查询黑白名单身份组/成员。相关方法请参见本文的API 参考。
前提条件
实现流程
-
服务器所有者调用
addMembersToServerRole
方法,将服务器成员加入身份组。 -
服务器所有者调用
updateServerRole
方法,授予该身份组管理黑白名单的权限(manageBlackWhiteList
)。结果:
服务器成员将拥有管理黑白名单的权限。
-
服务器所有者调用
createChannelCategory
方法创建频道分组。 -
如果创建的是私密频道分组,服务器所有者需调用
updateChannelCategoryWhiteBlackMembers
将成员加入频道分组白名单。 -
服务器成员调用
UpdateChannelCategoryWhiteBlackMembers
更新频道分组的黑白名单成员。
API 调用时序图
示例代码
const qchat = new QChat({...})
//服务器身份组Id
const roleId = 21343;
//服务器Id
const serverId = 123456
// 将某人加入服务器身份组
qchat.qchatRole.addMembersToServerRole({
serverId,roleId,
accids: []
})
//授予身份证管理黑白名单权限
qchat.qchatRole.updateServerRole({
serverId,roleId,
auths:{"manageBlackWhiteList":"allow"}
})
// 创建频道分组
const {categoryId} = qchat.qchatChannel.createChannelCategory({
serverId,
name: "...",
viewMode:1
})
// 更新频道分组的黑白名单身份组
qchat.qchatChannel.updateChannelCategoryWhiteBlackRole({
categoryId,
serverId,
type:'white',
opeType:'add',
roleId
})
// 更新频道分组的黑白名单成员
qchat.qchatChannel.updateChannelCategoryWhiteBlackMembers({
categoryId,
serverId,
type:'white',
opeType:'add',
toAccids: []
})
API 参考
API |
说明 |
---|---|
updateChannelCategoryWhiteBlackRole |
更新频道分组黑白名单身份组 |
getChannelCategoryWhiteBlackRoles |
根据身份组 ID 查询频道分组白/黑名单身份组列表 |
getChannelCategoryWhiteBlackRolesPage |
分页查询频道分组黑白名单身份组列表 |
updateChannelCategoryWhiteBlackMembers |
更新频道分组白/黑名单成员 |
getChannelCategoryWhiteBlackMembers |
根据成员 ID 查询频道分组黑白名单列表 |
getChannelCategoryWhiteBlackMembersPage |
分页查询频道分组白/黑名单成员列表 |
此文档是否对你有帮助?