Web

超大群成员管理

更新时间: 2024/03/14 19:21:10

云信 IM Web Elite SDK 支持用户查询、添加、移除超大群成员,管理成员角色等功能,拥有完善的成员权限体系及管理功能,群内所有用户根据权限分为群主、管理员、以及群成员。

技术原理

网易云信 IM Web Elite SDK 的 SuperTeamServiceInterface 提供管理超大群成员的相关方法,帮助您快速实现和使用超大群的成员权限体系及管理功能。

超大群中有三种角色,群主(owner),群管理员(manager)以及群普通成员(normal),具体请参见 SuperTeamMemberType

  • 群主默认为超大群创建者,后续可通过 transferSuperTeam 转让群主身份。(超大群需要用户在服务端创建,客户端不支持创建和解散超大群。)
  • 群管理员由群主分配,群主通过 addSuperTeamManagers 将普通成员设置为管理员。
  • 用户进入超大群后,默认为超大群的普通成员,后续可联系群主修改角色。
  • TeamMemberType 中还包含 applyapplyReject 两种类型,分别表示待审核的申请加入用户和已拒绝的申请加入用户。

超大群相关 API 都挂载在 superTeam 模块中,使用 nim.superTeam 进行访问,具体请参见 SuperTeamServiceInterface

前提条件

管理超大群管理员

添加超大群管理员

只有超大群群主才拥有添加管理员的权限。

通过调用addSuperTeamManagers 方法添加超大群管理员。

群主添加管理员后,所有群成员会收到超大群通知消息,其类型为 updateSuperTeamManagers

接口原型:

jsaddSuperTeamManagers(options: AddSuperTeamManagersOptions): Promise<void>

示例代码:

jsawait nim.superTeam.addSuperTeamManagers({
  accounts: ['cs1', 'cs2'],
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

撤销超大群管理员

只有群主拥有撤销超大群管理员的权限。

通过调用 removeSuperTeamManagers 方法来撤销超大群管理员。

群主撤销管理员后,所有群成员会收到超大群通知消息,其类型为 updateSuperTeamManagers

接口原型:

jsremoveSuperTeamManagers(options: RemmoveSuperTeamManagersOptions): Promise<void>

示例代码:

jsawait nim.superTeam.removeSuperTeamManagers({
  accounts: ['cs1', 'cs2'],
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

修改超大群成员信息

修改超大群成员的群昵称

只有超大群群主和管理员才有修改超大群成员群昵称的权限。其中,群主可以修改超大群中所有人的群昵称,管理员只能修改普通成员的群昵称。

通过调用 updateMemberNick 方法来修改超大群成员的群昵称。

修改昵称后,所有其他在线的群成员会收到超大群通知消息 updateSuperTeamMember

接口原型:

jsupdateMemberNick(options: UpdateMemberNickOptions): Promise<SuperTeamMember>

示例代码:

jsawait nim.superTeam.updateMemberNick({
  account: 'cs1'
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
  nickInTeam: '张三',
});

修改自己在超大群中的信息

通过调用 updateMyMemberInfo 来修改自己在超大群中的信息。

目前支持修改的属性包括以下三种:

  • nickInTeam: 自己在超大群中的群昵称。更新昵称后,所有其他在线的群成员会收到超大群通知消息 updateSuperTeamMember
  • bitConfigMask: 超大群消息提醒策略,0 表示开启提醒; 1 表示关闭消息提醒; 2 表示只接收群主和管理员的消息的提醒。
  • ext: 第三方扩展字段, 开发者可以自行扩展, 建议封装成 JSON 格式字符串。

接口原型:

jsupdateMyMemberInfo(options: UpdateMyMemberInfoOptions): Promise<SuperTeamMember>

示例代码:

jsawait nim.superTeam.updateMyMemberInfo({
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
  nickInTeam: '张三',
  bitConfigMask: '2',
  ext: '扩展字段, 建议封装成 JSON 格式字符串',
});

超大群禁言

超大群全员禁言

只有群主才有禁言全体成员或取消全员禁言的权限。

通过调用 muteSuperTeam 方法来禁言超大群全体成员或解除全体成员的禁言。

超大群全员禁言分为两种模式。

  • 若超大群的禁言模式 muteTypeall,那么调用该接口禁言的对象是包含群主和管理员的所有成员。
  • 若超大群的禁言模式 muteTypenormal,那么调用该接口禁言的对象是全体普通成员,不包括群主和管理员。

接口原型:

jsmuteSuperTeam(options: MuteSuperTeamOptions): Promise<void>

示例代码:

jsawait nim.superTeam.muteSuperTeam({
  mute: 'true',//true表示禁言,false表示解除禁言
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

禁言指定成员

只有群主和管理员才能禁言指定成员。其中群主可以禁言任何成员,管理员只能禁言普通成员。

通过调用 muteSuperTeamMembers 来禁言指定超大群成员或解除群成员的禁言。

更新群成员禁言状态后, 所有群成员会收到超大群通知消息,其类型为 updateSuperTeamMembersMute

接口原型:

jsmuteSuperTeamMembers(options: MuteSuperTeamMembersOptions): Promise<void>

示例代码:

jsawait nim.superTeam.muteSuperTeamMembers({
  accounts: ['cs1', 'cs2'],
  mute: 'true',//true表示禁言,false表示解除禁言
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

查询超大群成员

查询超大群成员信息

该操作有可能只是从本地数据库读取缓存数据,也有可能会从服务器同步新的数据, 因此耗时可能会比较长。

接口原型:

jsgetSuperTeamMembers(options: GetSuperTeamMembersOptions): Promise<SuperTeamMember[]>

其中,GetSuperTeamMembersOptions 是获取超大群成员的入参。

GetSuperTeamMembersOptionsreverse字段用来决定排序规则,默认为 false ,表示获取 joinTime 之后进入超大群的群成员,按时间升序排列;true 表示获取 joinTime 之前进入超大群的群成员,按时间降序排列。

接口原型:

jsgetSuperTeamMembersByAccounts(options: GetSuperTeamMembersByAccountsOptions): Promise<SuperTeamMember[]>

示例代码:

jsawait nim.superTeam.getSuperTeamMembers({
  joinTime: '1506652312445',//成员加入时间,获取在该时间之后/之前进群的群成员
  limit: '500',//本次获取的群成员数量。默认 100,最多 1000
  reverse: 'false',
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

await nim.superTeam.getSuperTeamMembersByAccounts({
  accounts: ['cs1', 'cs2'],//成员账号 id,最大 20 个
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

查询被禁言的群成员

SDK 通过调用 queryMuteMembers 方法来查询被禁言的群成员。

接口原型:

jsqueryMuteMembers(options: QueryMuteMembersOptions): Promise<SuperTeamMember[]>

其中,QueryMuteMembersOptions 是查询被禁言的群成员的入参。

QueryMuteMembersOptionsreverse字段默认为 false ,表示获取 joinTime 之后进入超大群的群成员;true 表示获取 joinTime 之前进入超大群的群成员。

示例代码:

jsawait nim.superTeam.queryMuteMembers({
  joinTime: '1506652312445',//筛选条件:加入的时间,获取在该时间之后/之前进群的群成员
  limit: '50',//分页大小。一页默认 100
  reverse: 'false',
  teamId:  '{{TARGET_SUPERTEAM_ID}}',
});

API 参考

API
说明
addSuperTeamManagers 添加超大群管理员
updateMyMemberInfo 修改自己在超大群中的信息
getSuperTeamMembers 查询超大群成员
getSuperTeamMembersByAccounts 根据账号查询超大群成员
updateMemberNick 修改超大群成员的昵称
removeSuperTeamManagers 移除超大群管理员
muteSuperTeam 禁言超大群全体成员
muteSuperTeamMembers 修改超大群成员的禁言状态
queryMuteMembers 查询被禁言的超大群成员
此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 前提条件
  • 管理超大群管理员
  • 添加超大群管理员
  • 撤销超大群管理员
  • 修改超大群成员信息
  • 修改超大群成员的群昵称
  • 修改自己在超大群中的信息
  • 超大群禁言
  • 超大群全员禁言
  • 禁言指定成员
  • 查询超大群成员
  • 查询超大群成员信息
  • 查询被禁言的群成员
  • API 参考