群成员管理
功能简介
本文档适用于开发以下平台的应用:iOS、Android、macOS、Windows、Web。
本文档适用于开发以下平台应用:iOS、Android、macOS、Windows。
ZIM SDK 提供了群成员管理功能,支持查询群组成员列表、查询群组成员基本信息以及转让群主等功能。
实现流程
用户使用“群成员管理”功能之前,请先加入某个群组,否则无法使用相关功能,详情请参考 加入群组。
查询群成员列表
用户登录 ZIM SDK、并加入某个群组后,如果想要了解自己所在群组都有哪些成员,可以通过调用 queryGroupMemberList 接口,分页查询该群组的成员列表。单次调用接口最多可获取 100 名成员,传入 count
超过 100 按照 100 处理。
查询成功后,用户可以通过 ZIMGroupMemberListQueriedResult 收到查询结果。
// 群内成员查询群组的成员列表
ZIMGroupMemberQueryConfig config = new ZIMGroupMemberQueryConfig();
// count 超过 100 按照 100 处理
config.count = 100;
config.nextFlag = 0;
zim.queryGroupMemberList(group_id, config, new ZIMGroupMemberListQueriedCallback() {
@Override
public void onGroupMemberListQueried(ArrayList<ZIMGroupMemberInfo> userList, int nextFlag, ZIMError errorInfo) {
// 通过 errorInfo.code 获取查询群组成员列表的结果
}
});
1
// 群内成员查询群组的成员列表
int myNextFlag = 0;
ZIMGroupMemberQueryConfig *config = [[ZIMGroupMemberQueryConfig alloc] init];
// count 超过 100 按照 100 处理
config.count = 20;
config.nextFlag = myNextFlag;
[zim queryGroupMemberListByGroupID:groupID config:config callback:^(NSArray<ZIMGroupMemberInfo *> * _Nonnull userList, unsigned int nextFlag, ZIMError * _Nonnull errorInfo) {
//保存群成员的锚点,用于下次分页查询
myNextFlag = nextFlag;
//这里写调用查询群成员接口后的业务代码
}];
1
// 群内成员查询群组的成员列表
ZIMGroupMemberQueryConfig groupMemberQueryConfig =
ZIMGroupMemberQueryConfig();
// count 超过 100 按照 100 处理
groupMemberQueryConfig.count = 100;
ZIM.getInstance()
!.queryGroupMemberList('groupID', groupMemberQueryConfig)
.then((value) {
//成功触发此处
})
.catchError((onError) {
//失败触发此处
});
1
// 群内成员查询群组的成员列表
var groupID = '';
// count 超过 100 按 100 处理
var config = { count: 10, nextFlag: 0 };
zim.queryGroupMemberList(groupID, config)
.then(function ({ groupID, userList, nextFlag }) {
// 查询成功
})
.catch(function (err) {
// 查询失败
});
1
// 群内成员查询群组的成员列表
zim::ZIMGroupMemberQueryConfig config;
config.count = 100;
config.nextFlag = 0;
zim_->queryGroupMemberList(group_id, config,
[=](const std::string &groupID, const std::vector<zim::ZIMGroupMemberInfo> userList,
unsigned int nextFlag, zim::ZIMError errorInfo){
int error_code = errorInfo.code;
});
1
// 群内成员查询群组的成员列表
ZIMGroupMemberQueryConfig config = new ZIMGroupMemberQueryConfig();
// count 超过 100 按照 100 处理
config.count = 100;
config.nextFlag = 0;
ZIM.GetInstance().QueryGroupMemberList("group_id", config, (string groupID, List<ZIMGroupMemberInfo> userList,
uint nextFlag, ZIMError errorInfo) =>
{
// 通过 errorInfo.code 获取查询群组成员列表的结果
}
);
1
查询群成员信息
用户登录 ZIM SDK、并加入某个群组后,如果想要了解自己所在群组的某个成员的信息,可以通过调用 queryGroupMemberInfo 接口,查询该成员的个人信息。
查询成功后,用户可以通过 ZIMGroupMemberInfoQueriedResult 收到查询结果。
// 群内成员 查询群组内某个成员的信息
zim.queryGroupMemberInfo(user_id, group_id, new ZIMGroupMemberListQueriedCallback() {
@Override
public void onGroupMemberListQueried(ArrayList<ZIMGroupMemberInfo> userList, int nextFlag, ZIMError errorInfo) {
// 通过 errorInfo.code 获取查询群组成员信息的结果
}
});
1
// 群内成员 查询群组内某个成员的信息
[zim queryGroupMemberInfo:userID groupID:groupID callback:^(NSString * _Nonnull groupID, ZIMGroupMemberInfo * _Nonnull userInfo, ZIMError * _Nonnull errorInfo) {
//这里写调用查询群组内某个成员的信息接口后的业务代码
}];
1
// 群内成员 查询群组内某个成员的信息
ZIM.getInstance()
!.queryGroupMemberInfo('userID', 'groupID')
.then((value) {
//成功触发此处
})
.catchError((onError) {
//失败触发此处
});
1
// 群内成员 查询群组内某个成员的信息
var groupID = '';
var userID = '';
zim.queryGroupMemberInfo(userID, groupID)
.then(function ({ groupID, userInfo }) {
// 查询成功
})
.catch(function (err) {
// 查询失败
});
1
// 群内成员查询群组内某个成员的信息
zim_->queryGroupMemberInfo(user_id, group_id,
[=](const std::string &groupID, const zim::ZIMGroupMemberInfo &userList, zim::ZIMError errorInfo){
int error_code = errorInfo.code;
});
1
// 群内成员 查询群组内某个成员的信息
ZIM.GetInstance().QueryGroupMemberInfo("user_id", "group_id", (string groupID, ZIMGroupMemberInfo userInfo, ZIMError errorInfo) =>
{
// 通过 errorInfo.code 获取查询群组成员信息的结果
}
);
1
设置群成员昵称
用户登录 ZIM SDK、并加入某个群组后,如果想要设置自己在群组中的昵称,可以通过调用 setGroupMemberNickname 接口,设置昵称。
在群组中,群主可以设置自己和其他群内成员在该群中的昵称;其他群内成员仅可以设置自己在该群的昵称。
设置成功后,用户可以通过 ZIMGroupMemberNicknameUpdatedResult 收到通知。
// 群内成员设置昵称。
// 注意:群主可以设置自己和其他群内成员在该群的昵称;其他群内成员仅可以设置自己在该群的昵称。
zim.setGroupMemberNickname(member_new_nick_name, user_id, group_id, new ZIMGroupMemberNicknameUpdatedCallback() {
@Override
public void onGroupMemberNicknameUpdated(ZIMError errorInfo) {
// 通过 errorInfo.code 获取设置昵称的结果
}
});
1
// 群内成员设置昵称。
// 注意:群主可以设置自己和其他群内成员在该群中的昵称;其他群内成员仅可以设置自己在该群中的昵称。
[zim setGroupMemberNickname:nickName forUserID:userID groupID:groupID callback:^(ZIMError * _Nonnull errorInfo) {
//此处写调用设置群成员的别名接口后的业务代码
}];
1
// 群内成员设置在群内的昵称。
// 注意:群主可以设置自己和其他群内成员的昵称;其他群内成员仅可以设置自己在群内的群昵称。
ZIM.getInstance()
!.setGroupMemberNickname('nickname', 'forUserID', 'groupID')
.then((value) {
//成功触发此处
})
.catchError((onError) {
//失败触发此处
});
1
// 群内成员设置昵称。
// 注意:群主可以设置自己和其他群内成员在该群中的昵称;其他群内成员仅可以设置自己在该群中的昵称。
var groupID = '';
var forUserID = '';
var nickname = '';
zim.setGroupMemberNickname(nickname, forUserID, groupID)
.then(function ({ groupID, forUserID, nickname }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
// 注册监听“群成员信息变更”的回调
zim.on('groupMemberInfoUpdated', function (zim, { groupID, userList, operatedInfo }) {
console.log('groupMemberInfoUpdated', groupID, userList, operatedInfo);
});
1
// 群内成员设置昵称。
// 注意:群主可以设置自己和其他群内成员在该群中的昵称;其他群内成员仅可以设置自己在该群中的昵称。
zim_->setGroupMemberNickname(member_new_nick_name, user_id, group_id,
[=](const std::string &groupID, const std::string &userID,
const std::string &userNickame, zim::ZIMError errorInfo){
int error_code = errorInfo.code;
});
1
// 群内成员设置昵称。注意:群主可以设置自己和其他群内成员在该群的昵称;其他群内成员仅可以设置自己在该群的昵称。
ZIM.GetInstance().SetGroupMemberNickname("member_new_nick_name", "user_id", "group_id", (string groupID, string forUserID,
string nickname, ZIMError errorInfo) =>
{
// 通过 errorInfo.code 获取设置昵称的结果
}
);
1
设置群成员角色
群主登录 ZIM SDK 后,可以通过调用 setGroupMemberRole 接口,设置其他群内成员的角色,比如设置某个群成员为普通成员或者为管理员。
设置成功后,群主可以通过 ZIMGroupMemberRoleUpdatedResult 类型收到设置结果。
群内成员可以通过 onGroupMemberInfoUpdated 收到用户角色变更的通知。
群成员角色与权限说明
ZIM SDK 默认支持将用户设置为群主、管理员、普通成员。在群组中,群主拥有所有客户端权限,可以实现所有群组功能。管理员拥有大部分客户端权限。普通成员拥有的客户端权限最少,具体如下表所示:
客户端权限 | 群主(对应枚举值为 1) | 管理员(对应枚举值为 2) | 普通成员(对应枚举值为 3) |
---|
修改群头像、群名称、群公告 | 支持 | 支持 | 支持 |
---|
修改群属性 |
---|
修改群成员昵称 | 支持,可对所有群角色用户使用此功能 | 支持,可对所有普通成员使用此功能 | 支持,仅可对自己使用此功能 |
---|
撤回群成员消息 |
---|
踢人 | 不支持。 |
---|
对单独群成员禁言 |
---|
对特定群角色禁言 |
---|
设置群成员角色 | 不支持 |
---|
转让群主 |
---|
解散群组 |
---|
全员禁言 |
---|
// 群主将普通成员用户设置为管理员
zim.setGroupMemberRole(2, user_id, group_id, new ZIMGroupMemberRoleUpdatedCallback() {
@Override
public void onGroupMemberRoleUpdated(ZIMError errorInfo) {
// 通过 errorInfo.code 获取设置群内成员的角色的结果
}
});
1
// 群主设置普通成员为管理员
[zim setGroupMemberRole:2 forUserID:userID groupID:groupID callback:^(ZIMError * _Nonnull errorInfo) {
//此处写设置角色后的业务代码
}];
1
// 群主将普通用户设置为管理员
ZIM.getInstance()
!.setGroupMemberRole(2, 'forUserID', 'groupID')
.then((value) {
//成功触发此处
})
.catchError((onError) {
//失败触发此处
});
1
// 群主设置普通成员用户为管理员
var groupID = '';
var forUserID = '';
var role = 2;
zim.setGroupMemberRole(role, forUserID, groupID)
.then(function ({ groupID, forUserID, role }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
// 注册监听“群成员信息变更”的回调
zim.on('groupMemberInfoUpdated', function (zim, { groupID, userList, operatedInfo }) {
console.log('groupMemberInfoUpdated', groupID, userList, operatedInfo);
});
1
// 群主将普通成员用户设置为管理员
int role = 2;
zim_->setGroupMemberRole(role, for_user_id, group_id,
[=](int role, const std::string &forUserID, const std::string &groupID, zim::ZIMError errorInfo) {
int error_code = errorInfo.code;
});
1
// 群主将普通成员用户设置为管理员
int role = 2;
ZIM.GetInstance().SetGroupMemberRole(role, "user_id", "group_id", (string groupID, string forUserID,
int role, ZIMError errorInfo) =>
{
// 通过 errorInfo.code 获取设置群内成员的角色的结果
}
);
1
转让群主
用户登录 ZIM SDK、并加入某个群组后,如果自己是某个群组中的群主,可以通过调用 transferGroupOwner 接口,传入 toUserID(被转让群主的群成员 ID),将自己的群主角色,转让给其他群内成员。
- 群组中,只有群主向其他群内成员转让群主的角色。
- 群主转让时,toUserID(被转让群主的用户 ID) 必须是本群组内的成员,否则会操作失败。
转让成功后,群内成员可以通过 onGroupMemberInfoUpdated 收到群主变更的通知。
// 转让群主身份给其他群内成员
zim.transferGroupOwner(new_group_owner_id, group_id, new ZIMGroupOwnerTransferredCallback() {
@Override
public void onGroupOwnerTransferred(ZIMError errorInfo) {
// 通过 errorInfo.code 获取转让群主身份的结果
}
});
1
// 转让群主身份给其他群内成员
[zim transferGroupOwnerToUserID:userID groupID:groupID callback:^(ZIMError * _Nonnull errorInfo) {
//此处写调用转让群主身份给其他群内成员的接口后的业务代码
}];
1
// 转让群主身份给其他群内成员
ZIM.getInstance()
!.transferGroupOwner('toUserID', 'groupID')
.then((value) {
//成功触发此处
})
.catchError((onError) {
//失败触发此处
});
1
// 转让群主身份给其他群内成员
var groupID = '';
var toUserID = '';
zim.transferGroupOwner(toUserID, groupID)
.then(function ({ groupID, toUserID }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
// 注册监听“群成员状态变更”的回调
zim.on('groupMemberStateChanged', function (zim, { groupID, state, event, userList, operatedInfo }) {
console.log('groupMemberStateChanged', groupID, state, event, userList, operatedInfo);
});
// 注册监听“群成员信息变更”的回调
zim.on('groupMemberInfoUpdated', function (zim, { groupID, userList, operatedInfo }) {
console.log('groupMemberInfoUpdated', groupID, userList, operatedInfo);
});
1
// 转让群主身份给其他群内成员
zim_->transferGroupOwner(new_group_owner_id, group_id,
[=](const std::string &groupID, const std::string &toUserID, zim::ZIMError errorInfo){
int error_code = errorInfo.code;
});
1
// 转让群主身份给其他群内成员
ZIM.GetInstance().TransferGroupOwner("new_group_owner_id", "group_id", (string groupID, string toUserID, ZIMError errorInfo) =>
{
// 通过 errorInfo.code 获取转让群主身份的结果
}
);
1
查询群内成员数量
用户登录 ZIM SDK、并加入某个群组后,如果想要了解自己所在群组的成员数量,可以通过调用 queryGroupMemberCount 接口,查询该群成员的数量。
查询成功后,用户可以通过 ZIMGroupMemberCountQueriedResult 收到查询结果。
// 群内成员 查询群组内成员的数量
zim.queryGroupMemberCount("GROUP_ID", new ZIMGroupMemberCountQueriedCallback() {
@Override
public void onGroupMemberCountQueried(String groupID, int count, ZIMError errorInfo) {
// 获取群人数
}
});
1
// 群内成员 查询群组内成员的数量
[zim queryGroupMemberCountByGroupID:self.toGroupID callback:^(NSString * _Nonnull groupID, unsigned int count, ZIMError * _Nonnull errorInfo) {
}];
1
// 群内成员 查询群组内成员的数量
try {
ZIMGroupMemberCountQueriedResult result =
await ZIM.getInstance().queryGroupMemberCount('groupID');
//这里写查询成功后的逻辑
} on PlatformException catch (onError) {
//根据 onError 写对应的失败逻辑
}
1
// 查询群内成员数量
var groupID = '';
zim.queryGroupMemberCount(groupID)
.then(function ({ groupID, count }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
1
// 群内成员 查询群组内成员的数量
zim_->queryGroupMemberCount(
group_id, [=](const std::string &groupID, unsigned int count,
const zim::ZIMError &errorInfo) {
int code = errorInfo.code;
});
1
// 群内成员 查询群组内成员的数量
ZIM.GetInstance().QueryGroupMemberCount("GROUP_ID", (string groupID, uint count, ZIMError errorInfo) =>
{
// 获取群人数
}
);
1
搜索群成员
用户登录 ZIM SDK、并加入群组后,如果想要根据条件在群成员中搜索用户,可以通过调用 searchLocalGroupMembers 接口,传入 groupID、config、callback 搜索符合条件的群成员。
搜索结果将通过 ZIMGroupMembersSearchedResult 回调接口返回。
// 在某个群组中搜索名称中包含 “zego” 的群成员
ZIM zim = getZIM();
ZIMGroupMemberSearchConfig config = new ZIMGroupMemberSearchConfig();
config.count = 10;
config.nextFlag = nextFlag;
config.isAlsoMatchGroupMemberNickname = true; // 如果群成员昵称包含 zego,搜索结果将包含该成员
config.keywords.add("zego");
zim.searchLocalGroupMembers(conversationID, config, new ZIMGroupMembersSearchedCallback() {
@Override
public void onGroupMembersSearched(String groupID, ArrayList<ZIMGroupMemberInfo> userList, int nextFlag, ZIMError errorInfo) {
// 开发者可从 userList 中获取到群成员信息
}});
1
// 在某个群组中搜索名称中包含 “zego” 的群成员
ZIMGroupMemberSearchConfig *config = [[ZIMGroupMemberSearchConfig alloc] init];
config.count = 10;
config.isAlsoMatchGroupMemberNickname = true; // 如果群成员昵称包含 zego,搜索结果将包含该成员
config.keywords = @[@"zego"];
[[ZIM getInstance] searchLocalGroupMembersByGroupID:@"groupID" config:config callback:^(NSString * _Nonnull groupID, NSArray<ZIMGroupMemberInfo *> * _Nonnull userList, unsigned int nextFlag, ZIMError * _Nonnull errorInfo) {
// 开发者可从 userList 中获取到群成员信息
}];
1
// 在某个群组中搜索名称中包含 “zego” 的群成员
ZIMGroupMemberSearchConfig config = ZIMGroupMemberSearchConfig();
config.count = 10;
config.isAlsoMatchGroupMemberNickname = true; // 如果群成员昵称包含 zego,搜索结果将包含该成员
config.keywords.add("zego");
ZIM.getInstance()!.searchLocalGroupMembers("groupID", config).then((value){
// 开发者可从 userList 中获取到群成员信息
}).catchError((onError){
});
1
// 在某个群组中搜索名称中包含 “zego” 的群成员
var config = {
count: 10, // 搜索结果数量
nextFlag: 0,
keywords: ['zego'], // 设置关键词为 “zego”,最多支持 5 个。当设置多个关键词后,搜索结果只展示同时包含所有关键词的本地消息
isAlsoMatchGroupMemberNickname: true, // 如果群成员用户昵称包含 zego,搜索结果将包含该群成员
};
zim.searchLocalGroupMembers('groupID', config)
.then(function ({ groupID, userList, nextFlag }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
1
// 在某个群组中搜索名称中包含 “zego” 的群成员
auto searchConfig = zim::ZIMGroupMemberSearchConfig();
searchConfig.count = 10;
searchConfig.nextFlag = 0;
// 如果群成员昵称包含 zego ,搜索结果将包含该成员
searchConfig.isAlsoMatchGroupMemberNickname = true;
searchConfig.keywords.emplace_back("zego");
zim_->searchLocalGroupMembers(groupID, searchConfig,
[=](const std::string &groupID,
const std::vector<zim::ZIMGroupMemberInfo> &userList,
unsigned int nextFlag, const zim::ZIMError &errorInfo) {
// 开发者可从 userList 中获取到群成员信息
});
1
// 在某个群组中搜索名称中包含 “zego” 的群成员
ZIMGroupMemberSearchConfig config = new ZIMGroupMemberSearchConfig();
config.count = 10;
config.nextFlag = nextFlag;
config.isAlsoMatchGroupMemberNickname = true; // 如果群成员昵称包含 zego,搜索结果将包含该成员
config.keywords.Add("zego");
ZIM.GetInstance().SearchLocalGroupMembers(groupInfo.baseInfo.groupID, groupMemberSearchConfig, (string groupID, List<ZIMGroupMemberInfo> userList,
uint nextFlag, ZIMError errorInfo) =>
{
// 开发者可从 userList 中获取到群成员信息
});
1
设置群成员禁言状态
登录 ZIM SDK 后,用户可以禁言或解禁自己管理的群组内的特定成员。调用 muteGroupMembers 接口,批量修改 100 名群成员的禁言状态。禁言期限可为永久(ZIMGroupMemberMuteConfig > duration
为 -1)或最长为 7 天(ZIMGroupMemberMuteConfig > duration
为 604800)。当 ZIMGroupMemberMuteConfig > duration
为 0 时,表示取消禁言。
- 群主可以禁止所有群成员发言,包括自己。
- 如需上调单次操作数量或最长禁言期限,请联系 ZEGO 技术支持。
设置成功后,操作用户可以通过 ZIMGroupMembersMutedResult 收到通知。
禁言或解禁成功后,全体群成员会收到 onGroupMemberInfoUpdated ,得知哪些群成员无法在该群组发言或解除禁言状态。
boolean isMute = true;
ArrayList<String> userIDList;
userIDList.add("user_1");
userIDList.add("user_3");
userIDList.add("user_2");
String groupID = "group_id";
ZIMGroupMemberMuteConfig config = new ZIMGroupMemberMuteConfig();
// 禁言时长 30 秒
config.duration = 30;
zim.muteGroupMembers(isMute, userIDList, groupID, config,new ZIMGroupMembersMutedCallback() {
@Override
public void onGroupMembersMuted(String groupID, boolean isMute, int duration, ArrayList<String> mutedMemberIDs, ArrayList<ZIMErrorUserInfo> errorUserList, ZIMError errorInfo) {
// 开发者可从回调各参数中获取到禁言结果相关信息
});
1
ZIMGroupMemberMuteConfig *muteConfig = [[ZIMGroupMemberMuteConfig alloc] init];
// 禁言时长 30 秒
muteConfig.duration = 30;
[[ZIM getInstance] muteGroupMembers:YES userIDs:@[@"user_1",@"user_2",@"user_3"] groupID:@"group_id" config:muteConfig callback:^(NSString * _Nonnull groupID, BOOL isMute, int duration, NSArray<NSString *> * _Nonnull mutedMemberIDs, NSArray<ZIMErrorUserInfo *> * _Nonnull errorUserList, ZIMError * _Nonnull errorInfo) {
// 开发者可从回调各参数中获取到禁言结果相关信息
}];
1
try {
bool isMute = true;
List<String> userIDs = ['user_1','user_2','user_3'];
String groupID = 'group_id';
ZIMGroupMemberMuteConfig config = ZIMGroupMemberMuteConfig();
// 禁言时长 30 秒
config.duration = 30;
ZIMGroupMembersMutedResult result = await ZIM.getInstance()!.muteGroupMembers(isMute, userIDs, groupID, config);
// 开发者可从 result 各参数中获取到禁言结果相关信息
} on PlatformException catch (onError){
onError.code;//根据错误码表处理
onError.message;//错误信息
}
1
var isMute = true;
var userIDs = ["user_1", "user_2", "user_3"];
var groupID = "group_id";
var config = {
duration: 30, // 设置禁言时间为 30 秒
};
zim.muteGroupMembers(isMute, userIDs, groupID, config)
.then(function ({ groupID, isMute, duration, mutedUserIDs, errorUserList }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
1
bool is_mute = true;
std::vector<std::string> user_id_list;
user_id_list.push_back("user_1");
user_id_list.push_back("user_3");
user_id_list.push_back("user_2");
std::string group_id = "group_id";
zim::ZIMGroupMemberMuteConfig config;
config.duration = 30;
zim_->muteGroupMembers(is_mute, user_id_list, group_id, config,
[=](const std::string &groupID, bool is_muted, unsigned int duration,
const std::vector<std::string> &mutedMemberIDs,
const std::vector<zim::ZIMErrorUserInfo> &errorUserList,
const zim::ZIMError &errorInfo) {
// 开发者可从回调各参数中获取到禁言结果相关信息
});
1
查询群内禁言成员列表
登录 ZIM SDK 后,群成员如需了解所在群组的被禁言成员列表,可调用 queryGroupMemberMutedList 接口进行查询。
查询成功后,操作用户可通过 ZIMGroupMemberMutedListQueriedResult 获取具体信息。
// 群内成员查询群组的成员列表
ZIMGroupMemberMutedListQueryConfig config = new ZIMGroupMemberMutedListQueryConfig();
// 单次获取成员数量为 100
config.count = 100;
config.nextFlag = 0;
zim.queryGroupMemberMutedList(
group_id, config, new ZIMGroupMemberMutedListQueriedCallback() {
@Override
public void onGroupMemberListQueried(String groupID, long nextFlag, ArrayList<ZIMGroupMemberInfo> userList, ZIMError errorInfo) {
}
});
1
// 群内成员查询群组的成员列表
ZIMGroupMemberMutedListQueryConfig *config = [[ZIMGroupMemberMutedListQueryConfig alloc] init];
// 单次获取成员数量为 100
config.count = 100;
config.nextFlag = 0;
[[ZIM getInstance] queryGroupMemberMutedListByGroupID:@"groupID" config:config callback:^(NSString * _Nonnull groupID, unsigned long long nextFlag, NSArray<ZIMGroupMemberInfo *> * _Nonnull userList, ZIMError * _Nonnull errorInfo) {
// 开发者可以从 info 中拿到被禁言群成员信息
}];
1
try {
// 群内成员查询群组的被禁言成员列表
ZIMGroupMemberMutedListQueryConfig config = ZIMGroupMemberMutedListQueryConfig();
//单次获取成员数量为 100
config.count = 100;
config.nextFlag = 0;
ZIMGroupMemberMutedListQueriedResult result = await ZIM.getInstance()!.queryGroupMemberMutedList('gorupID', config);
} on PlatformException catch (onError){
onError.code; // 根据错误码表处理
onError.message; // 错误信息
}
1
// 群内成员查询群组的成员列表
var groupID = "group_id";
var config = {
count: 100,
nextFlag: 0,
}
zim.queryGroupMemberMutedList(groupID, config)
.then(function ({ groupID, userList, nextFlag }) {
// 操作成功
})
.catch(function (err) {
// 操作失败
});
1
// 群内成员查询群组的成员列表
zim::ZIMGroupMemberMutedListQueryConfig config;
// 单次获取成员数量为 100
config.count = 100;
config.nextFlag = 0;
zim_->queryGroupMemberMutedList(
group_id, config,
[=](const std::string &groupID, unsigned long long nextFlag,
const std::vector<zim::ZIMGroupMemberInfo> &info, const zim::ZIMError &errorInfo) {
// 开发者可以从 info 中拿到被禁言群成员信息
});
1
获取当前群成员禁言状态
如需主动获取当前用户在群组的禁言状态,请通过以下任意方法:
当会话类型是群类型时,从返回结果中的 ZIMGroupConversation 获取 mutedExpiredTime ,即群禁言时间,单位为秒。
mutedExpiredTime 值说明如下:
- 为 -1 时,表示当前用户永久无法在该群组发言。
- 为 0 时,表示当前用户可以在该群组发言。
- 为其他值时,表示当前用户于该数值时间内无法在该群组发言。