群成员管理
更新时间: 2024/07/09 09:58:34
网易云信 IM 支持用户查询、添加、移除群组成员,管理成员角色等功能,拥有完善的成员权限体系及管理功能,群组内所有用户根据权限分为群主、管理员、以及普通成员。
技术原理
网易云信 NIM SDK 的 V2NIMTeamService
提供管理群组成员的相关方法,帮助您快速实现和使用群组的成员权限体系及管理功能。
群组中有三种角色,群主(Owner
),群组管理员(Manager
)以及群组普通成员(Normal
),具体请参考 V2NIMTeamMemberRole
。
- 群主默认为群组创建者,后续可通过
transferTeamOwner
方法转让群主身份。 - 群组管理员由群主分配和管理。用户进入群组后默认为普通成员,群主通过
updateTeamMemberRole
方法将成员修改为管理员,或将管理员降级为普通成员。
前提条件
管理群组管理员
通过调用 updateTeamMemberRole
方法添加或移除群组管理员。将普通成员角色修改为管理员即添加管理员,将管理员角色修改为普通成员即移除管理员。
群主添加管理员后,所有群成员会收到群组通知消息,通知消息类型为 V2NIMMessageNotificationType.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_ADD_MANAGER(7)
。群主移除管理员后,所有群成员收到群组通知消息类型为 V2NIMMessageNotificationType.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_REMOVE_MANAGER(8)
。
只有群主才拥有管理群组管理员的权限。
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberAccountIds |
List |
是 | - | 群成员账号(accountId)列表,不可为空,否则返回 191004 参数错误。 |
memberRole |
V2NIMTeamMemberRole |
是 | - | 群成员角色类型。仅支持设置为群普通成员或群管理员,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberAccountIds |
NSArray<NSString *> * | 是 | - | 群成员账号(accountId)列表,不可为空,否则返回 191004 参数错误。 |
memberRole |
V2NIMTeamMemberRole |
是 | - | 群成员角色类型。仅支持设置为群普通成员或群管理员,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
nstd::string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberAccountIds |
nstd::vector<nstd::string> | 是 | - | 群成员账号(accountId)列表,不可为空,否则返回 191004 参数错误。 |
memberRole |
V2NIMTeamMemberRole |
是 | - | 群成员角色类型。仅支持设置为群普通成员或群管理员,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberAccountIds |
string[] | 是 | - | 群成员账号(accountId)列表,不可为空,否则返回 191004 参数错误。 |
memberRole |
V2NIMTeamMemberRole |
是 | - | 群成员角色类型。仅支持设置为群普通成员或群管理员,否则返回 191004 参数错误。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberAccountIds |
string[] | 是 | - | 群成员账号(accountId)列表,不可为空,否则返回 191004 参数错误。 |
memberRole |
V2NIMTeamMemberRole |
是 | - | 群成员角色类型。仅支持设置为群普通成员或群管理员,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
List<String> memberAccountIds = new ArrayList<>();
memberAccountIds.add("test1");
V2NIMTeamMemberRole memberRole = V2NIMTeamMemberRole.V2NIM_TEAM_MEMBER_ROLE_MANAGER;
v2TeamService.updateTeamMemberRole(teamId, teamType, memberAccountIds, memberRole, result -> {
// 更新群组成员角色成功
}, error -> {
// 更新群组成员角色失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] updateTeamMemberRole:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL memberAccountIds:@[@"accountId"] memberRole:V2NIM_TEAM_MEMBER_ROLE_NORMAL success:^{
// 更新群组成员角色成功
} failure:^(V2NIMError * _Nonnull error) {
// 更新群组成员角色失败
}];
C++std::vector<std::string> memberAccountIds;
memberAccountIds.push_back("account1");
teamService.updateTeamMemberRole(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
memberAccountIds,
V2NIM_TEAM_MEMBER_ROLE_MANAGER,
[]() {
// update team member role success
},
[](V2NIMError error) {
// update team member role failed, handle error
}
);
TypeScriptawait nim.V2NIMTeamService.updateTeamMemberRole("123456", 1, ["accountId1"], 0)
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const memberAccountIds: string[] = ["aaa", "bbb"]
const memberRole: V2NIMTeamMemberRole = V2NIMTeamMemberRole.V2NIM_TEAM_MEMBER_ROLE_MANAGER
await nim.teamService.updateTeamMemberRole(teamId, teamType, memberAccountIds, memberRole)
// success
}
catch (err) {
// fail
}
修改群成员信息
修改群成员昵称
只有群主和管理员才有修改群组成员昵称的权限。
通过调用 updateTeamMemberNick
来修改群组成员昵称。修改成功后,群组内所有成员会收到群成员信息变更回调 onTeamMemberInfoUpdated
。
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
String | 是 | - | 群成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
teamNick |
String | 是 | - | 群成员新昵称,可以设置为 "",但不可设置 null,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
NSString * | 是 | - | 群成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
teamNick |
NSString * | 是 | - | 群成员新昵称,可以设置为 "",但不可设置 null,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
nstd::string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
nstd::string | 是 | - | 群成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
teamNick |
nstd::string | 是 | - | 群成员新昵称,可以设置为 "",但不可设置 null,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
string | 是 | - | 群成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
nick |
string | 是 | - | 群成员新昵称,可以设置为 "",但不可设置 null,否则返回 191004 参数错误。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
string | 是 | - | 群成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
nick |
string | 是 | - | 群成员新昵称,可以设置为 "",但不可设置 null,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
String account = "test";
String teamNick = "test nick";
v2TeamService.updateTeamMemberNick(teamId, teamType, account, teamNick, result -> {
// 修改群成员昵称成功
}, error -> {
// 修改群成员昵称失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] updateTeamMemberNick:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL accountId:@"accountId" teamNick:@"test" success:^{
// 修改群成员昵称成功
} failure:^(V2NIMError * _Nonnull error) {
// 修改群成员昵称失败
}];
C++teamService.updateTeamMemberNick(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
"accountId",
"new nick",
[]() {
// update team member nick success
},
[](V2NIMError error) {
// update team member nick failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.updateTeamMemberNick("123456", 1, "accountId1", "test nick")
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const account: string = "aaa"
const nick: string = "new nick"
await teamService.updateTeamMemberNick(teamId, teamType, account, nick)
// success
} catch (err) {
// fail
}
修改本人群信息
通过调用 updateSelfTeamMemberInfo
方法修改本人群成员信息。支持修改群成员昵称及服务端扩展字段。
修改本人群成员信息成功后,群组内所有成员收到群成员信息变更回调 onTeamMemberInfoUpdated
。
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberInfoParams |
V2NIMUpdateSelfMemberInfoParams |
是 | - | 本人群成员信息配置,包含群成员昵称及服务端扩展字段。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberInfoParams |
V2NIMUpdateSelfMemberInfoParams |
是 | - | 本人群成员信息配置,包含群成员昵称及服务端扩展字段。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
std::string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberInfoParams |
V2NIMUpdateSelfMemberInfoParams |
是 | - | 本人群成员信息配置,包含群成员昵称及服务端扩展字段。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调。 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberInfoParams |
V2NIMUpdateSelfMemberInfoParams |
是 | - | 本人群成员信息配置,包含群成员昵称及服务端扩展字段。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
memberInfoParams |
V2NIMUpdateSelfMemberInfoParams |
是 | - | 本人群成员信息配置,包含群成员昵称及服务端扩展字段。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
V2NIMUpdateSelfMemberInfoParams memberInfoParams = new V2NIMUpdateSelfMemberInfoParams();
memberInfoParams.setTeamNick("test nick");
memberInfoParams.setServerExtension("test");
v2TeamService.updateSelfTeamMemberInfo(teamId,teamType, memberInfoParams, result -> {
// 修改自己的群成员信息成功
}, error -> {
// 修改自己的群成员信息失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] updateSelfTeamMemberInfo:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL memberInfoParams:infoParams success:^{
// 修改自己的群成员信息成功
} failure:^(V2NIMError * _Nonnull error) {
// 修改自己的群成员信息失败
}];
C++V2NIMUpdateSelfMemberInfoParams memberInfoParams;
memberInfoParams.teamNick = "new nick";
teamService.updateSelfTeamMemberInfo(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
memberInfoParams,
[]() {
// update self team member info success
},
[](V2NIMError error) {
// update self team member info failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.updateSelfTeamMemberInfo("123456", 1, {
"teamNick": "test nick"
})
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const memberInfoParams: V2NIMUpdateSelfMemberInfoParams = {
teamNick: "nick",
serverExtension: "ext"
}
await teamService.updateSelfTeamMemberInfo(teamId, teamType, memberInfoParams)
// success
} catch (err) {
// fail
}
禁言或解除禁言群组成员
禁言或解除禁言群组所有成员
通过调用 setTeamChatBannedMode
方法来禁言群组所有普通成员或解除所有普通成员的禁言。
设置成功后,群组内所有成员会收到群组信息变更回调 onTeamInfoUpdate
以及群信息变更的通知类消息,消息类型为 V2NIMMessageNotificationType.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_UPDATE_TINFO(3)
。
- 只有群主和管理员才有禁言普通成员(不含群主和管理员)或取消普通成员禁言的权限。
- 该方法仅支持禁言所有普通成员,如需全员禁言(包含群主和群管理员),请调用服务端 API 更新群组信息。
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
chatBannedMode |
V2NIMTeamChatBannedMode |
是 | - | 群组禁言模式。 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
chatBannedMode |
V2NIMTeamChatBannedMode |
是 | - | 群组禁言模式。 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
std::string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
chatBannedMode |
V2NIMTeamChatBannedMode |
是 | - | 群组禁言模式。 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
chatBannedMode |
V2NIMTeamChatBannedMode |
是 | - | 群组禁言模式。 |
:::
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
chatBannedMode |
V2NIMTeamChatBannedMode |
是 | - | 群组禁言模式。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
V2NIMTeamChatBannedMode chatBannedMode = V2NIMTeamChatBannedMode.V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL;
v2TeamService.setTeamChatBannedMode(teamId,teamType, chatBannedMode, result -> {
// 设置群组禁言模式成功
}, error -> {
// 设置群组禁言模式失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] setTeamChatBannedMode:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL chatBannedMode:V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL success:^{
// 设置群组禁言模式成功
} failure:^(V2NIMError * _Nonnull error) {
// 设置群组禁言模式失败
}];
C++teamService.setTeamChatBannedMode(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL,
[]() {
// set team chat banned mode success
},
[](V2NIMError error) {
// set team chat banned mode failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.setTeamChatBannedMode("123456", 1, 1)
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const chatBannedMode: V2NIMTeamChatBannedMode = V2NIMTeamChatBannedMode.V2NIM_TEAM_CHAT_BANNED_MODE_BANNED_NORMAL
await teamService.setTeamChatBannedMode(this.teamId, this.teamType, this.chatBannedMode)
// success
} catch (err) {
// fail
}
禁言或解除禁言群组指定成员
只有群主和管理员才能禁言普通成员。
通过调用 setTeamMemberChatBannedStatus
方法来禁言群组指定成员或解除群成员的禁言。
设置成功后,群组内所有成员会收到群成员信息变更回调 onTeamMemberInfoUpdated
以及群成员禁言的通知类消息,消息类型为 V2NIMMessageNotificationType.V2NIM_MESSAGE_NOTIFICATION_TYPE_TEAM_BANNED_TEAM_MEMBER(10)
。
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
String | 是 | - | 群组成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
chatBanned |
boolean | 是 | - | 群组成员是否被禁言。 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
NSString * | 是 | - | 群组成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
chatBanned |
BOOL | 是 | - | 群组成员是否被禁言。 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
nstd::string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
nstd::string | 是 | - | 群组成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
chatBanned |
bool | 是 | - | 群组成员是否被禁言。 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
string | 是 | - | 群组成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
chatBanned |
boolean | 是 | - | 群组成员是否被禁言。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID。如果为空、不合法、不存在则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountId |
string | 是 | - | 群组成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
chatBanned |
boolean | 是 | - | 群组成员是否被禁言。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
String accountId = "test";
boolean chatBanned = true;
v2TeamService.setTeamMemberChatBannedStatus(teamId,teamType, accountId, chatBanned, result -> {
// 设置群组成员聊天禁言状态成功
}, error -> {
// 设置群组成员聊天禁言状态失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] setTeamMemberChatBannedStatus:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL accountId:@"accountId" chatBanned:YES success:^{
// 设置群组成员聊天禁言状态成功
} failure:^(V2NIMError * _Nonnull error) {
// 设置群组成员聊天禁言状态失败
}];
C++teamService.setTeamMemberChatBannedStatus(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
"accountId",
true,
[]() {
// set team member chat banned status success
},
[](V2NIMError error) {
// set team member chat banned status failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.setTeamMemberChatBannedStatus("123456", 1, "accountId1", true)
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const account: string = "aaaa"
const chatBanned: boolean = true
await teamService.setTeamMemberChatBannedStatus(teamId, teamType, accountId, chatBanned)
// success
} catch (err) {
// fail
}
分页获取所有群组成员列表
通过调用 getTeamMemberList
方法分页获取群组所有群成员信息。分页配置参数请参考 V2NIMTeamMemberQueryOption
。支持获取指定类型或被禁言的群成员:
-
roleQueryType
:获取指定类型的群成员(必须指定) -
onlyChatBanned
为true
:获取被禁言的群成员
- 由于群组成员数据较大,且除了进入群组成员列表界面外,其他场景不需要群组成员列表的数据,因此 SDK 不会在登录时同步群组成员数据,而是按照按需获取的原则,当上层主动调用获取指定群的群组成员列表时,才判断是否需要同步。
- 该操作有可能只是从本地数据库读取缓存数据,也有可能会从服务器同步新的数据,因此耗时可能会比较长。
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
V2NIMTeamMemberQueryOption queryOption = new V2NIMTeamMemberQueryOption();
queryOption.setRoleQueryType(V2NIMTeamMemberRoleQueryType.V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_ALL);
// 设置分页偏移,首次传"",后续拉取采用上一次返回的 nextToken
queryOption.setNextToken("");
queryOption.setDirection(V2NIMQueryDirection.V2NIM_QUERY_DIRECTION_DESC);
queryOption.setLimit(100);
queryOption.setOnlyChatBanned(false);
v2TeamService.getTeamMemberList(teamId, teamType, queryOption, result -> {
// 获取群组成员列表成功
}, error -> {
// 获取群组成员列表失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] getTeamMemberList:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL queryOption:queryOption success:^(V2NIMTeamMemberListResult * _Nonnull result) {
// 获取群组成员列表成功
} failure:^(V2NIMError * _Nonnull error) {
// 获取群组成员列表失败
}];
C++V2NIMTeamMemberQueryOption queryOption;
queryOption.nextToken = ""; // first page
queryOption.limit = 10;
queryOption.direction = V2NIM_QUERY_DIRECTION_DESC;
teamService.getTeamMemberList(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
queryOption,
[](V2NIMTeamMemberListResult result) {
// get team members success
},
[](V2NIMError error) {
// get team members failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.getTeamMemberList(
"123456",
1,
{
"roleQueryType": 0,
"onlyChatBanned": false,
"direction": 0,
"limit": 100,
"nextToken": ""
}
)
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const queryOption: V2NIMTeamMemberQueryOption = {
roleQueryType: V2NIMTeamMemberRoleQueryType.V2NIM_TEAM_MEMBER_ROLE_QUERY_TYPE_NORMAL,
onlyChatBanned: false,
direction: V2NIMQueryDirection.V2NIM_QUERY_DIRECTION_DESC
limit: 50
nextToken: undefined
}
const memberListResult: V2NIMTeamMemberListResult = await nim.teamService.getTeamMemberList(teamId, teamType, queryOption)
// success
} catch (err) {
// fail
}
批量获取指定群组成员列表
通过调用 getTeamMemberListByIds
方法批量获取指定群成员信息。
SDK 获取策略如下:
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
List |
是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 获取成功回调,返回 V2NIMTeamMember 列表。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
NSArray<NSString *> * | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
success |
V2NIMTeamMemberListCallback |
是 | - | 获取成功回调,返回 V2NIMTeamMember 列表,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
nstd::string | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
nstd::vector<nstd::string> | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 获取成功回调,返回 V2NIMTeamMember 列表。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
string[] | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
string | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
string[] | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
List<String> accountIds = new ArrayList<>();
accountIds.add("test1");
accountIds.add("test2");
v2TeamService.getTeamMemberListByIds(teamId,teamType, accountIds, result -> {
// 获取群组成员列表成功
}, error -> {
// 获取群组成员列表失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] getTeamMemberListByIds:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL accountIds:@[@"accountId"] success:^(NSArray<V2NIMTeamMember *> * _Nonnull memberList) {
// 获取群组成员列表成功
} failure:^(V2NIMError * _Nonnull error) {
// 获取群组成员列表失败
}];
C++nstd::vector<nstd::string> accountIds;
accountIds.push_back("account1");
accountIds.push_back("account2");
teamService.getTeamMemberListByIds(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
accountIds,
[](nstd::vector<V2NIMTeamMember> memberList) {
// get team members by account ids success
},
[](V2NIMError error) {
// get team members by account ids failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.getTeamMemberListByIds("123456", 1, ["accountId1"])
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const accounts = ["aaa", "bbb"]
const members: V2NIMTeamMember[] = await nim.teamService.getTeamMemberListByIds(teamId, teamType, accountIds)
// success
} catch (err) {
// fail
}
查询群成员的邀请者
通过调用 getTeamMemberInvitor
获取群组成员的入群邀请人。
SDK 获取策略如下:
群成员入群邀请人为空表示主动入群,没有邀请人。
参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
String | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
List |
是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 获取成功回调,返回格式如下: Map<String, String>, key: accountId, value: invitorAccountId |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
NSString * | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
NSArray<NSString *> * | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
success |
V2NIMTeamMemberInvitorResultCallback |
是 | - | 获取成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamId |
nstd::string | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
nstd::vector<nstd::string> | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 获取成功回调,返回格式如下: nstd::map<nstd::string, nstd::string>, key: accountId, value: invitorAccountId |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回 错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamIds |
string | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
string[] | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
参数名称 | 类型 | 是否必填 | 默认值 | 说明 |
---|---|---|---|---|
teamIds |
string | 是 | - | 群组 ID 列表,不可为空,否则返回 191004 参数错误。 |
teamType |
V2NIMTeamType |
是 | - | 群组类型,包括高级群和超大群。 |
accountIds |
string[] | 是 | - | 群成员账号列表,不可为 null 或空,否则返回 191004 参数错误。 |
示例代码
JavaV2NIMTeamService v2TeamService = NIMClient.getService(V2NIMTeamService.class);
String teamId = "123456";
V2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
List<String> accountIds = new ArrayList<>();
accountIds.add("test1");
accountIds.add("test2");
v2TeamService.getTeamMemberInvitor(teamId,teamType, accountIds, result -> {
// 获取群组成员邀请人成功
}, error -> {
// 获取群组成员邀请人失败
});
Objective-C[[[NIMSDK sharedSDK] v2TeamService] getTeamMemberInvitor:@"teamId" teamType:V2NIM_TEAM_TYPE_NORMAL accountIds:@[@"accountId"] success:^(NSDictionary<NSString *,NSString *> * _Nonnull result) {
// 获取群组成员邀请人成功
} failure:^(V2NIMError * _Nonnull error) {
// 获取群组成员邀请人失败
}];
C++nstd::vector<nstd::string> accountIds;
accountIds.push_back("account1");
accountIds.push_back("account2");
teamService.getTeamMemberInvitor(
"teamId",
V2NIM_TEAM_TYPE_NORMAL,
accountIds,
[](nstd::map<nstd::string, nstd::string> invitors) {
// get team member invitor success
},
[](V2NIMError error) {
// get team member invitor failed, handle error
});
TypeScriptawait nim.V2NIMTeamService.getTeamMemberInvitor("123456", 1, ["accountId1"])
TypeScripttry {
const teamId: string = "123456"
const teamType: V2NIMTeamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL
const accounts = ["aaa", "bbb"]
const keyValue = await nim.teamService.getTeamMemberInvitor(teamId, teamType, accountIds)
// success
} catch (err) {
// fail
}
根据关键字搜索群成员
通过调用 searchTeamMembers
方法,根据关键词搜索群组成员。
- 关键词仅匹配群成员昵称。
- 仅查询本地数据。
如果群组数据同步已开始,请在群组数据同步结束后进行该操作,否则可能获取不到完整数据。
示例代码:
JavaV2NIMTeamType teamType = V2NIMTeamType.V2NIM_TEAM_TYPE_NORMAL;
String nextToken = "";
V2NIMTeamMemberSearchOption searchOption = V2NIMTeamMemberSearchOption.V2NIMTeamMemberSearchOptionBuilder.builder(keyword, teamType, nextToken)
// 按需配置
// .withLimit()
// .withOrder()
// .withTeamId()
.build();
NIMClient.getService(V2NIMTeamService.class).searchTeamMembers(searchOption, new V2NIMSuccessCallback<V2NIMTeamMemberSearchResult>() {
@Override
public void onSuccess(V2NIMTeamMemberSearchResult v2NIMTeamMemberSearchResult) {
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
}
});
Objective-C- (void)searchMember
{
V2NIMTeamMemberSearchOption *option = [[V2NIMTeamMemberSearchOption alloc] init];
option.keyword = @"keyword"; // keyword
option.teamType = V2NIM_TEAM_TYPE_NORMAL; // search all normal team
option.teamType = V2NIM_TEAM_TYPE_SUPER; // search all super team
option.teamId = @"123456"; // search specific team
option.limit = 20; // limit
option.order = V2NIM_SORT_ORDER_DESC;
option.nextToken = V2NIMTeamMemberSearchOption.initNextToken; // init
[NIMSDK.sharedSDK.v2TeamService searchTeamMembers:option success:^(V2NIMTeamMemberSearchResult * _Nonnull result) {
// result
result.memberList;
if (result.finished) {
// end
} else {
V2NIMTeamMemberSearchOption *nextOption = [option copy];
// move next
nextOption.nextToken = result.nextToken;
// again
[NIMSDK.sharedSDK.v2TeamService searchTeamMembers:nextOption success:^(V2NIMTeamMemberSearchResult * _Nonnull result) {
} failure:^(V2NIMError * _Nonnull error) {
}];
}
} failure:^(V2NIMError * _Nonnull error) {
// error
}];
}
C++V2NIMTeamMemberSearchOption option;
option.keyword = "keyword";
option.teamType = V2NIM_TEAM_TYPE_NORMAL;
option.pageToken = "";
teamService.searchTeamMembers(
option,
[](nstd::vector<V2NIMTeamMember> teamMembers) {
// search team members success
},
[](V2NIMError error) {
// search team members failed, handle error
});