聊天室成员管理
更新时间: 2024/06/03 11:22:56
网易云信 IM 支持用户查询、添加、移除群组成员,管理成员角色等功能,拥有完善的成员权限体系及管理功能,群组内所有用户根据权限分为群主、管理员、以及普通成员。
技术原理
网易云信 NIM SDK 的 V2NIMChatroomService
类提供管理聊天室成员的相关方法,帮助您快速实现和使用聊天室的成员权限体系及管理功能。
聊天室成员角色分为固定成员和非固定成员两类,具体成员角色类型请参见 V2NIMChatroomMemberRole
:
- 固定成员:创建者、管理员、普通成员。总计上限 1000 人。
- 管理员由创建者分配和管理。管理员不能对创建者和其他管理员进行操作。
- 黑名单用户即被拉黑的聊天室成员,与聊天室断开连接且无法收发消息。
- 永久禁言用户即被执行永久禁言的聊天室成员,可接收消息但不能发送消息。解除永久禁言后,不影响临时禁言的到期时间。
- 若重复设置临时禁言,则后一次设置会覆盖前一次设置的到期时间(不累计)。
- 非固定成员无人数上限:
- 游客:普通游客、匿名游客。
- 除了创建者,其他成员刚加入聊天室时均默认是游客,根据登录参数(
V2NIMChatroomEnterParams.anonymousMode
)判断是普通游客或匿名游客。 - 游客只有在线时才属于聊天室的非固定成员;游客进入聊天室又退出后,不属于聊天室的任何成员(和聊天室没有任何关系)。
- 除了创建者,其他成员刚加入聊天室时均默认是游客,根据登录参数(
- 虚构成员:虚构用户。仅支持通过新版服务端 API 添加聊天室虚构用户。
- 游客:普通游客、匿名游客。
前提条件
已实现聊天室登录。
聊天室相关事件监听
在进行聊天室相关操作前,您可以先注册监听聊天室相关事件。监听后,在进行聊天室管理操作后,会收到对应的通知。
-
相关回调
-
onChatroomMemberEnter
:成员进入聊天室回调,返回V2NIMChatroomMember
。聊天室内所有成员均会收到该回调。 -
onChatroomMemberExit
:成员退出聊天室回调,返回accountId
。聊天室内所有成员均会收到该回调。 -
onChatroomMemberRoleUpdated
:聊天室成员角色类型变更回调,返回V2NIMChatroomMemberRole
和V2NIMChatroomMember
。聊天室内所有成员均会收到该回调。 -
onChatroomMemberInfoUpdated
:聊天室成员信息变更回调,返回V2NIMChatroomMember
。聊天室内所有成员均会收到该回调。 -
onSelfChatBannedUpdated
:聊天室成员本人禁言状态变更回调,返回chatBanned
禁言状态。 -
onSelfTempChatBannedUpdated
:聊天室成员本人临时禁言状态变更回调,返回tempChatBanned
临时禁言状态和tempChatBannedDuration
临时禁言时长(秒)。 -
onChatroomChatBannedUpdated
:聊天室整体禁言状态变更回调,返回chatBanned
禁言状态。
-
-
示例代码
javaV2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
V2NIMChatroomListener listener = new V2NIMChatroomListener() {
@Override
public void onChatroomMemberEnter(V2NIMChatroomMember member) {
}
@Override
public void onChatroomMemberExit(String accountId) {
}
@Override
public void onChatroomMemberRoleUpdated(V2NIMChatroomMemberRole previousRole, V2NIMChatroomMember member) {
}
@Override
public void onChatroomMemberInfoUpdated(V2NIMChatroomMember member) {
}
@Override
public void onSelfChatBannedUpdated(boolean chatBanned) {
}
@Override
public void onSelfTempChatBannedUpdated(boolean tempChatBanned, long tempChatBannedDuration) {
}
@Override
public void onChatroomChatBannedUpdated(boolean chatBanned) {
}
};
v2ChatroomService.addChatroomListener(listener);
objective-c@interface Listener: NSObject<V2NIMChatroomListener>
- (void)addToService;
@end
@implementation Listener
- (void)addToService
{
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
[service addChatroomListener:self];
}
- (void)onChatroomMemberEnter:(V2NIMChatroomMember *)member
{
}
- (void)onChatroomMemberExit:(NSString *)accountId
{
}
- (void)onChatroomMemberRoleUpdated:(V2NIMChatroomMemberRole)previousRole
member:(V2NIMChatroomMember *)member
{
}
- (void)onChatroomMemberInfoUpdated:(V2NIMChatroomMember *)member
{
}
- (void)onSelfChatBannedUpdated:(BOOL)chatBanned
{
}
- (void)onSelfTempChatBannedUpdated:(BOOL)tempChatBanned
tempChatBannedDuration:(NSInteger)tempChatBannedDuration
{
}
- (void)onChatroomChatBannedUpdated:(BOOL)chatBanned
{
}
- (void)onMessageRevokedNotification:(NSString *)messageClientId
messageTime:(NSTimeInterval)messageTime
{
}
@end
cppV2NIMChatroomListener listener;
listener.onChatroomMemberEnter = [](V2NIMChatroomMember member) {
// handle chatroom member enter
};
listener.onChatroomMemberExit = [](nstd::string accountId) {
// handle chatroom member exit
};
listener.onChatroomMemberRoleUpdated = [](V2NIMChatroomMemberRole previousRole, V2NIMChatroomMember member) {
// handle chatroom member role updated
};
listener.onChatroomMemberInfoUpdated = [](V2NIMChatroomMember member) {
// handle chatroom member info updated
};
listener.onSelfChatBannedUpdated = [](bool chatBanned) {
// handle self chat banned updated
};
listener.onSelfTempChatBannedUpdated = [](bool tempChatBanned, uint64_t tempChatBannedDuration) {
// handle self temp chat banned updated
};
listener.onChatroomChatBannedUpdated = [](bool chatBanned) {
// handle chatroom chat banned updated
};
listener.onMessageRevokedNotification = [](nstd::string messageClientId, uint64_t messageTime) {
// handle message revoked notification
};
chatroomService.addChatroomListener(listener);
typescriptchatroom.V2NIMChatroomService.on('onChatroomMemberEnter', function (member: V2NIMChatroomMember){})
chatroom.V2NIMChatroomService.on('onChatroomMemberExit', function (accountId: string){})
chatroom.V2NIMChatroomService.on('onChatroomMemberRoleUpdated', function (previousRole: V2NIMChatroomMemberRole, currentMember: V2NIMChatroomMember){})
chatroom.V2NIMChatroomService.on('onChatroomMemberInfoUpdated', function (member: V2NIMChatroomMember){})
chatroom.V2NIMChatroomService.on('onSelfChatBannedUpdated', function (chatBanned: boolean){})
chatroom.V2NIMChatroomService.on('onSelfTempChatBannedUpdated', function (tempChatBanned: boolean, tempChatBannedDuration: number){})
chatroom.V2NIMChatroomService.on('onChatroomChatBannedUpdated', function (chatBanned: boolean){})
typescriptchatroom.chatroomService.on('onChatroomMemberEnter', (member: V2NIMChatroomMember) => {})
chatroom.chatroomService.on('onChatroomMemberExit', (accountId: string) => {})
chatroom.chatroomService.on('onChatroomMemberRoleUpdated', (previousRole: V2NIMChatroomMemberRole, currentMember: V2NIMChatroomMember) => {})
chatroom.chatroomService.on('onChatroomMemberInfoUpdated', (member: V2NIMChatroomMember) => {})
chatroom.chatroomService.on('onSelfChatBannedUpdated', (chatBanned: boolean) => {})
chatroom.chatroomService.on('onSelfTempChatBannedUpdated', (tempChatBanned: boolean, tempChatBannedDuration: number) => {})
chatroom.chatroomService.on('onChatroomChatBannedUpdated', (chatBanned: boolean) => {})
获取聊天室成员
分页获取聊天室成员
通过调用 getMemberListByOption
方法分页获取所有聊天室成员信息。分页查询选项请参见 V2NIMChatroomMemberQueryOption
。支持获取指定多种类型/被加入黑名单/被禁言/在线的聊天室成员:
-
memberRoles
:获取指定类型的聊天室成员 -
onlyChatBanned
为true
:获取被加入黑名单的聊天室成员 -
onlyChatBanned
为true
:获取被禁言的聊天室成员 -
onlyOnline
为true
:获取在线的聊天室固定成员(创建者、管理员、普通成员)
该方法该操作从服务器同步数据,耗时可能较长。SDK 不缓存数据,您需要根据需要自行做好缓存。
- 示例代码
java// 通过实例 ID 获取聊天室实例
V2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
V2NIMChatroomMemberQueryOption queryOption = new V2NIMChatroomMemberQueryOption();
// 设置需要查询的成员类型,如果列表为空,表示查询所有类型的成员
List<V2NIMChatroomMemberRole> memberRoles = getMemberRoles();
queryOption.setMemberRoles(memberRoles);
// 是否只返回黑名单成员, 默认false
queryOption.setOnlyBlocked(false);
// 是否只返回禁言用户, 默认false
queryOption.setOnlyChatBanned(false);
// 是否只返回在线成员, 默认false
queryOption.setOnlyOnline(false);
// 设置查询数量
queryOption.setLimit(100);
// 设置分页标识,首页传"",下一页传上次返回的 pageToken
queryOption.setPageToken("");
v2ChatroomService.getMemberListByOption(queryOption, new V2NIMSuccessCallback<V2NIMChatroomMemberListResult>() {
@Override
public void onSuccess(V2NIMChatroomMemberListResult v2NIMChatroomMemberListResult) {
// 查询成功
List<V2NIMChatroomMember> memberList = v2NIMChatroomMemberListResult.getMemberList();
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 查询失败
}
});
objective-c// 通过实例 ID 获取聊天室服务
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
V2NIMChatroomMemberQueryOption *queryOption = [[V2NIMChatroomMemberQueryOption alloc] init];
// 设置需要查询的成员类型,如果列表为空,表示查询所有类型的成员
queryOption.memberRoles = @[@(V2NIM_CHATROOM_MEMBER_ROLE_NORMAL_GUEST), @(V2NIM_CHATROOM_MEMBER_ROLE_ANONYMOUS_GUEST)];
// 是否只返回黑名单成员, 默认false
queryOption.onlyBlocked = NO;
// 是否只返回禁言用户, 默认false
queryOption.onlyChatBanned = NO;
// 是否只返回在线成员, 默认false
queryOption.onlyOnline = NO;
// 设置查询数量
queryOption.limit = 100;
// 设置分页标识,首页传"",下一页传上次返回的 pageToken
queryOption.pageToken = @"";
[service getMemberListByOption:queryOption
success:^(V2NIMChatroomMemberListResult *result)
{
// 查询成功
}
failure:^(V2NIMError *error)
{
// 查询失败
}];
cppV2NIMChatroomMemberQueryOption queryOption;
queryOption.pageToken = 0; // first page
queryOption.limit = 10;
chatroomService.getMemberListByOption(
queryOption,
[](V2NIMChatroomMemberListResult result) {
// get member list succeeded
},
[](V2NIMError error) {
// get member list failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.getMemberListByOption({
// 普通成员
memberRoles: [V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_NORMAL],
onlyBlocked: false,
onlyChatBanned: false,
onlyOnline: false,
limit: 100
})
typescriptawait this.chatroomClient.chatroomService.getMemberListByOption({
// 普通成员
memberRoles: [V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_NORMAL],
onlyBlocked: false,
onlyChatBanned: false,
onlyOnline: false,
limit: 100
})
批量获取指定聊天室成员
通过调用 getMemberByIds
方法批量获取指定聊天室成员信息。
- 单次查询数量上限为 200。
- 返回聊天室成员信息按照输入
accountIds
顺序排序。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountIds |
List |
是 | - | 如果输入为空/数量为 0/数量超过 200,则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 获取成功回调,返回 V2NIMChatroomMember 列表。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountIds |
NSArray<NSString *> * | 是 | - | 如果输入为空/数量为 0/数量超过 200,则返回 191004 参数错误。 |
success |
V2NIMChatroomMemberListCallback |
是 | - | 获取成功回调,可自定义设置。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountIds |
nstd::vector<nstd::string> | 是 | - | 如果输入为空/数量为 0/数量超过 200,则返回 191004 参数错误。 |
success |
V2NIMSuccessCallback |
是 | - | 获取成功回调,返回 [V2NIMChatroomMember ] 列表。 |
failure |
V2NIMFailureCallback |
是 | - | 获取失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountIds |
string[] | 是 | - | 如果输入为空/数量为 0/数量超过 200,则返回 191004 参数错误。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountIds |
string[] | 是 | - | 如果输入为空/数量为 0/数量超过 200,则返回 191004 参数错误。 |
- 示例代码
javaV2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 待查询的账号列表,为空或者 size==0,或者 size>200,返回参数错误
List<String> accountIds = getAccountIds();
v2ChatroomService.getMemberByIds(accountIds, new V2NIMSuccessCallback<List<V2NIMChatroomMember>>() {
@Override
public void onSuccess(List<V2NIMChatroomMember> v2NIMChatroomMembers) {
// 查询成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 查询失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
// 待查询的账号列表,为空或者 size==0,或者 size>200,返回参数错误
NSArray<NSString *> *accountIds = @[@"accountId0", @"accountId1", @"accountId2"];
[service getMemberByIds:accountIds
success:^(NSArray<V2NIMChatroomMember *> *members) {
// 获取成功
}
failure:^(V2NIMError *error) {
// 获取失败
}];
cppchatroomService.getMemberByIds(
{"accountId1", "accountId2"},
[](nstd::vector<V2NIMChatroomMember> members) {
// get members by account ids succeeded
},
[](V2NIMError error) {
// get members by account ids failed, handle error
});
typescriptgetMemberByIds(accountIds: string[]): Promise<V2NIMChatroomMember[]>
typescriptconst members = await this.chatroomClient.chatroomService.getMemberByIds(['accid1', 'accid2'])
根据标签分页获取聊天室成员
通过调用 getMemberListByOption
方法分页获取所有聊天室成员信息。分页查询选项请参见 V2NIMChatroomMemberQueryOption
。
该方法该操作从服务器同步数据,耗时可能较长。SDK 不缓存数据,您需要根据需要自行做好缓存。
- 参数说明
V2NIMChatroomTagMemberOption
说明:
如果您的应用平台为 Android,则需要调用对应的成员函数获取对应参数。
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
tag |
String | 是 | - | 聊天室标签信息 |
pageToken |
String | 否 | "" | 分页偏移,首次查询传空,下一次查询传入上一次查询返回值中的 nextToken 。 |
limit |
int | 否 | 100 | 单次查询最大数量。必须大于 0,否则返回参数错误。 |
- 示例代码
java// 通过实例 ID 获取聊天室实例
V2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
V2NIMChatroomMemberQueryOption queryOption = new V2NIMChatroomMemberQueryOption();
// 设置需要查询的成员类型,如果列表为空,表示查询所有类型的成员
List<V2NIMChatroomMemberRole> memberRoles = getMemberRoles();
queryOption.setMemberRoles(memberRoles);
// 是否只返回黑名单成员, 默认false
queryOption.setOnlyBlocked(false);
// 是否只返回禁言用户, 默认false
queryOption.setOnlyChatBanned(false);
// 是否只返回在线成员, 默认false
queryOption.setOnlyOnline(false);
// 设置查询数量
queryOption.setLimit(100);
// 设置分页标识,首页传"",下一页传上次返回的 pageToken
queryOption.setPageToken("");
v2ChatroomService.getMemberListByOption(queryOption, new V2NIMSuccessCallback<V2NIMChatroomMemberListResult>() {
@Override
public void onSuccess(V2NIMChatroomMemberListResult v2NIMChatroomMemberListResult) {
// 查询成功
List<V2NIMChatroomMember> memberList = v2NIMChatroomMemberListResult.getMemberList();
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 查询失败
}
});
objective-c// 通过实例 ID 获取聊天室服务
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
V2NIMChatroomMemberQueryOption *queryOption = [[V2NIMChatroomMemberQueryOption alloc] init];
// 设置需要查询的成员类型,如果列表为空,表示查询所有类型的成员
queryOption.memberRoles = @[@(V2NIM_CHATROOM_MEMBER_ROLE_NORMAL_GUEST), @(V2NIM_CHATROOM_MEMBER_ROLE_ANONYMOUS_GUEST)];
// 是否只返回黑名单成员, 默认false
queryOption.onlyBlocked = NO;
// 是否只返回禁言用户, 默认false
queryOption.onlyChatBanned = NO;
// 是否只返回在线成员, 默认false
queryOption.onlyOnline = NO;
// 设置查询数量
queryOption.limit = 100;
// 设置分页标识,首页传"",下一页传上次返回的 pageToken
queryOption.pageToken = @"";
[service getMemberListByOption:queryOption
success:^(V2NIMChatroomMemberListResult *result)
{
// 查询成功
}
failure:^(V2NIMError *error)
{
// 查询失败
}];
cppV2NIMChatroomMemberQueryOption queryOption;
queryOption.pageToken = 0; // first page
queryOption.limit = 10;
chatroomService.getMemberListByOption(
queryOption,
[](V2NIMChatroomMemberListResult result) {
// get member list succeeded
},
[](V2NIMError error) {
// get member list failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.getMemberListByOption({
// 普通成员
memberRoles: [V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_NORMAL],
onlyBlocked: false,
onlyChatBanned: false,
onlyOnline: false,
limit: 100
})
typescriptawait this.chatroomClient.chatroomService.getMemberListByOption({
// 普通成员
memberRoles: [V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_NORMAL],
onlyBlocked: false,
onlyChatBanned: false,
onlyOnline: false,
limit: 100
})
根据标签获取聊天室成员数量
通过调用 getMemberCountByTag
方法获取指定标签下的聊天室成员人数。
javaV2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 查询的 tag,必传字段,传 null 或者 "",会返回参数错误
String tag = "xxx";
v2ChatroomService.getMemberCountByTag(tag, new V2NIMSuccessCallback<Long>() {
@Override
public void onSuccess(Long count) {
// 查询成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 查询失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
// 查询的 tag,必传字段,传 null 或者 "",会返回参数错误
NSString *tag = @"xxx";
[service getMemberCountByTag:tag
success:^(NSInteger memberCount)
{
// 获取成功
}
failure:^(V2NIMError *error)
{
// 获取失败
}];
cppchatroomService.getMemberCountByTag(
"tag1",
[](uint64_t count) {
// get member count by tag succeeded
},
[](V2NIMError error) {
// get member count by tag failed, handle error
});
typescriptconst count = await chatroom.V2NIMChatroomService.getMemberCountByTag('tagName')
typescriptconst count = await this.chatroomClient.chatroomService.getMemberCountByTag('tagName')
修改聊天室成员自身信息
通过调用 updateSelfMemberInfo
方法更新本人的聊天室成员信息。目前支持更新昵称、头像、服务端扩展字段及反垃圾配置项。
支持设置更新后是否通知,若设置通知,聊天室内成员会收到类型为 V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_INFO_UPDATED(10)
的通知消息。
更新成功后,聊天室内成员会收到 onChatroomMemberInfoUpdated
回调。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
updateParams |
V2NIMChatroomSelfMemberUpdateParams |
是 | - | 本人聊天室成员信息更新参数 |
antispamConfig |
V2NIMAntispamConfig |
否 | null | 易盾反垃圾相关配置。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
updateParams |
V2NIMChatroomSelfMemberUpdateParams |
是 | - | 本人聊天室成员信息更新参数 |
antispamConfig |
V2NIMAntispamConfig |
否 | null | 易盾反垃圾相关配置。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
updateParams |
V2NIMChatroomSelfMemberUpdateParams |
是 | - | 本人聊天室成员信息更新参数 |
antispamConfig |
V2NIMAntispamConfig |
否 | null | 易盾反垃圾相关配置。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
updateParams |
V2NIMChatroomSelfMemberUpdateParams |
是 | - | 本人聊天室成员信息更新参数 |
antispamConfig |
V2NIMAntispamConfig |
否 | null | 易盾反垃圾相关配置。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
updateParams |
V2NIMChatroomSelfMemberUpdateParams |
是 | - | 本人聊天室成员信息更新参数 |
antispamConfig |
V2NIMAntispamConfig |
否 | null | 易盾反垃圾相关配置。 |
V2NIMChatroomSelfMemberUpdateParams
说明:
- 以下参数必须设置其一,否则返回参数错误。
- 如果您的应用平台为 Android,则需要调用对应的成员函数获取对应参数。
名称 | 类型 | 是否只读 | 默认值 | 描述 |
---|---|---|---|---|
roomNick |
String | 否 | - | 聊天室中显示昵称。设置为空表示不更新该字段,不可设置为 "",否则返回参数错误。 |
roomAvatar |
String | 否 | - | 聊天室中显示头像。设置为空表示不更新该字段。 |
serverExtension |
String | 否 | - | 聊天室成员服务端扩展字段,多端同步。建议 JSON 格式,长度上限为 2048。 设置为空表示不更新该字段。 |
notificationEnabled |
boolean | 否 | true | 操作后是否需要通知 |
notificationExtension |
String | 否 | - | 操作后通知的扩展字段 |
persistence |
String | 否 | false | 更新信息是否持久化,即是否将数据保存在本地数据库中。 |
- 示例代码
javaV2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
V2NIMChatroomSelfMemberUpdateParams updateParams = new V2NIMChatroomSelfMemberUpdateParams();
// 设置聊天室中显示的昵称
updateParams.setRoomNick("xxx");
// 设置头像
updateParams.setRoomAvatar("xxx");
// 设置成员扩展字段
updateParams.setServerExtension("xxx");
// 以上三个字段至少需要设置一个,否则会返回参数错误
// 设置是否需要通知
updateParams.setNotificationEnabled(true);
// 设置本次操作生成的通知中的扩展字段
updateParams.setNotificationExtension("xxx");
// 设置更新信息持久化, 只针对固定成员身份生效
updateParams.setPersistence(true);
// 反垃圾配置,可不传
V2NIMAntispamConfig antispamConfig = new V2NIMAntispamConfig();
v2ChatroomService.updateSelfMemberInfo(updateParams, antispamConfig, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// 更新成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 更新失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
V2NIMChatroomSelfMemberUpdateParams *updateParams = [[V2NIMChatroomSelfMemberUpdateParams alloc] init];
// 设置聊天室中显示的昵称
updateParams.roomNick = @"xxx";
// 设置头像
updateParams.roomAvatar = @"xxx";
// 设置成员扩展字段
updateParams.serverExtension = @"xxx";
// 以上三个字段至少需要设置一个,否则会返回参数错误
// 设置是否需要通知
updateParams.notificationEnabled = YES;
// 设置本次操作生成的通知中的扩展字段
updateParams.notificationExtension = @"xxx";
// 设置更新信息持久化, 只针对固定成员身份生效
updateParams.persistence = YES;
// 反垃圾配置,可不传
V2NIMAntispamConfig *antispamConfig = [[V2NIMAntispamConfig alloc] init];
[service updateSelfMemberInfo:updateParams
antispamConfig:antispamConfig
success:^()
{
// 更新成功
}
failure:^(V2NIMError *error)
{
// 更新失败
}];
cppV2NIMChatroomSelfMemberUpdateParams updateParams;
updateParams.roomNick = "roomNick";
V2NIMAntispamConfig antispamConfig;
chatroomService.updateSelfMemberInfo(
updateParams,
antispamConfig,
[]() {
// update self member info succeeded
},
[](V2NIMError error) {
// update self member info failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.updateSelfMemberInfo({
roomNick: 'nick', // 聊天室昵称
roomAvatar: 'https://www.xxx.com/1.jpg', // 头像
serverExtension: 'extension', // 扩展字段
notificationEnabled: true, // 是否通知
persistence: true // 是否持久化。若为否,则信息在下线后失效
})
typescriptawait this.chatroomClient.chatroomService.updateSelfMemberInfo({
roomNick: 'nick', // 聊天室昵称
roomAvatar: 'https://www.xxx.com/1.jpg', // 头像
serverExtension: 'extension', //扩展字段
notificationEnabled: true, //是否通知
persistence: true //是否持久化。若为否,则信息在下线后失效
})
更新聊天室成员角色
通过调用 updateMemberRole
方法更新聊天室成员角色,包括以下场景:
-
将普通游客、普通成员设置为管理员或反之,该操作仅聊天室创建者有权限。
-
将普通成员设置为普通游客或反之,该操作仅聊天室管理员和创建者有权限。
-
不允许操作虚构用户和匿名游客。
更新成功后,聊天室内所有成员收到 onChatroomMemberRoleUpdated
回调,及通类型为 V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_ROLE_UPDATE(18)
的通知消息。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
String | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
updateParams |
V2NIMChatroomMemberRoleUpdateParams |
是 | - | 聊天室成员更新参数。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
NSString * | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
updateParams |
V2NIMChatroomMemberRoleUpdateParams * |
是 | - | 聊天室成员更新参数。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
nstd::string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
updateParams |
V2NIMChatroomMemberRoleUpdateParams |
是 | - | 聊天室成员更新参数。 |
success |
V2NIMSuccessCallback |
是 | - | 更新成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 更新失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
updateParams |
V2NIMChatroomMemberRoleUpdateParams |
是 | - | 聊天室成员更新参数。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
updateParams |
V2NIMChatroomMemberRoleUpdateParams |
是 | - | 聊天室成员更新参数。 |
V2NIMChatroomMemberRoleUpdateParams
说明:
名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
memberRole |
V2NIMChatroomMemberRole |
是 | - | 聊天室成员角色类型: |
memberLevel |
int | 否 | 0,表示未设置 | 聊天室成员等级,大于或等于 0 的整数。 |
notificationExtension |
String | 否 | null | 聊天室成员角色变更通知的扩展字段 |
- 示例代码
java// 通过实例 ID 获取聊天室实例
V2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 被操作的账号 ID
String accountId = "test";
V2NIMChatroomMemberRoleUpdateParams updateParams = new V2NIMChatroomMemberRoleUpdateParams();
// 设置成员角色,必传字段,如果不传,会返回参数错误
// 不支持设置为
// V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_CREATOR
// V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_ANONYMOUS_GUEST
// V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_VIRTUAL
updateParams.setMemberRole(V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_MANAGER);
// 设置成员等级,可不传
updateParams.setMemberLevel(1);
// 设置通知扩展字段,可不传
updateParams.setNotificationExtension("xxx");
v2ChatroomService.updateMemberRole(accountId, updateParams, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
//更新成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
//更新失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:instanceId] getChatroomService];
// 被操作的账号 ID
NSString *accountId = @"test";
V2NIMChatroomMemberRoleUpdateParams *updateParams = [[V2NIMChatroomMemberRoleUpdateParams alloc] init];
// 设置成员角色,必传字段,如果不传,会返回参数错误
// 不支持设置为
// V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_CREATOR
// V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_ANONYMOUS_GUEST
// V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_VIRTUAL
updateParams.memberRole = V2NIM_CHATROOM_MEMBER_ROLE_MANAGER;
// 设置成员等级,可不传
updateParams.memberLevel = 1;
// 设置通知扩展字段,可不传
updateParams.notificationExtension = @"xxx";
[service updateMemberRole:accountId
updateParams:updateParams
success:^()
{
// 更新成功
}
failure:^(V2NIMError *error)
{
// 更新失败
}];
cppV2NIMChatroomMemberRoleUpdateParams updateParams;
updateParams.memberRole = V2NIM_CHATROOM_MEMBER_ROLE_MANAGER;
chatroomService.updateMemberRole(
"accountId",
updateParams,
[]() {
// update member role succeeded
},
[](V2NIMError error) {
// update member role failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.updateMemberRole('accid', {
// 设置为管理员
memberRole: V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_MANAGER,
// 用户登记
memberLevel: 10,
// 通知的扩展字段
notificationExtension: 'ps'
})
typescriptawait this.chatroomClient.chatroomService.updateMemberRole('accid', {
// 设置为管理员
memberRole: V2NIMChatroomMemberRole.V2NIM_CHATROOM_MEMBER_ROLE_MANAGER,
// 用户登记
memberLevel: 10,
// 通知的扩展字段
notificationExtension: 'ps'
})
设置聊天室成员黑名单状态
通过调用 setMemberBlockedStatus
方法来设置聊天室成员黑名单状态,支持将成员加入黑名单或从黑名单中移除。
加入黑名单后:
- 聊天室所有成员收到成员信息变更回调
onChatroomMemberInfoUpdated
和类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_BLOCK_ADDED(2)
的通知消息。 - 聊天室黑名单用户收到被踢出聊天室回调
onChatroomKicked
,被踢原因为拉黑,同时与聊天室服务器断开连接,无法收发聊天室消息。
移除黑名单后:
- 聊天室所有成员收到成员信息变更回调
onChatroomMemberInfoUpdated
和类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_BLOCK_REMOVED(3)
的通知消息。 - 从聊天室普通成员身份变为普通游客身份。
- 该操作仅聊天室创建者和管理员有权限。
- 如果被操作方为管理员,则仅聊天室创建者有权限。
- 不允许操作虚构用户和匿名游客。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
String | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
blocked |
boolean | 是 | - | 是否加入黑名单: |
notificationExtension |
String | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
NSString * | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
blocked |
BOOL | 是 | - | 是否加入黑名单: |
notificationExtension |
nullable NSString * | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
nstd::string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
blocked |
bool | 是 | - | 是否加入黑名单: |
notificationExtension |
nstd::string | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
blocked |
boolean | 是 | - | 是否加入黑名单: |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
blocked |
boolean | 是 | - | 是否加入黑名单: |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
- 示例代码
java// 通过实例 ID 获取聊天室实例
V2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 被操作的账号 ID
String accountId = "test";
// 设置黑名单状态
boolean blocked = true;
// 设置通知扩展字段,可不传
String notificationExtension = "xxx";
v2ChatroomService.setMemberBlockedStatus(accountId, blocked, notificationExtension, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// 设置成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 设置失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
// 被操作的账号 ID
NSString *accountId = @"test";
// 设置黑名单状态
BOOL blocked = YES;
// 设置通知扩展字段,可不传
NSString *notificationExtension = @"xxx";
[service setMemberBlockedStatus:accountId
blocked:blocked
notificationExtension:notificationExtension
success:^()
{
// 设置成功
}
failure:^(V2NIMError *error)
{
// 设置失败
}];
cppchatroomService.setMemberBlockedStatus(
"accountId",
true,
"notificationExtension",
[]() {
// set member blocked status succeeded
},
[](V2NIMError error) {
// set member blocked status failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.setMemberBlockedStatus('accountId', true, 'extension')
typescriptawait this.chatroomClient.chatroomService.setMemberBlockedStatus('accid', true, 'extension')
设置聊天室成员禁言状态
通过调用 setMemberChatBannedStatus
方法来设置聊天室成员禁言状态,支持将成员永久禁言或解除永久禁言。
被永久禁言后:
- 聊天室所有成员收到成员信息变更回调
onChatroomMemberInfoUpdated
和类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_CHAT_BANNED_ADDED(4)
的通知消息。 - 聊天室禁言用户收到禁言状态变更回调
onSelfChatBannedUpdated
,无法在聊天室内发送消息,但可以接收消息。
解除永久禁言后:
- 聊天室所有成员收到成员信息变更回调
onChatroomMemberInfoUpdated
和类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_CHAT_BANNED_REMOVED(5)
的通知消息。 - 聊天室禁言用户收到禁言状态变更回调
onSelfChatBannedUpdated
,恢复在聊天室内发送消息权限。
- 该操作仅聊天室创建者和管理员有权限。
- 如果被操作方为管理员,则仅聊天室创建者有权限。
- 不允许操作虚构用户和匿名游客。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
String | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
chatBanned |
boolean | 是 | - | 是否为禁言状态 |
notificationExtension |
String | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
NSString * | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
chatBanned |
BOOL | 是 | - | 是否为禁言状态 |
notificationExtension |
nullable NSString * | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
nstd::string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
chatBanned |
bool | 是 | - | 是否为禁言状态 |
notificationExtension |
nstd::string | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
chatBanned |
boolean | 是 | - | 是否为禁言状态 |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
chatBanned |
boolean | 是 | - | 是否为禁言状态 |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
- 示例代码
javaV2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 被操作的账号ID
String accountId = "test";
// 设置禁言状态
boolean chatBanned = true;
// 设置通知扩展字段,可不传
String notificationExtension = "xxx";
v2ChatroomService.setMemberChatBannedStatus(accountId, chatBanned, notificationExtension, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// 设置成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 设置失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
// 被操作的账号 ID
NSString *accountId = @"test";
//设置禁言状态
BOOL chatBanned = YES;
// 设置通知扩展字段,可不传
NSString *notificationExtension = @"xxx";
[service setMemberChatBannedStatus:accountId
chatBanned:chatBanned
notificationExtension:notificationExtension
success:^()
{
// 设置成功
}
failure:^(V2NIMError *error)
{
// 设置失败
}];
cppchatroomService.setMemberChatBannedStatus(
"accountId",
true,
"notificationExtension",
[]() {
// set member chat banned status succeeded
},
[](V2NIMError error) {
// set member chat banned status failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.setMemberChatBannedStatus('accid', true, 'extension')
typescriptawait this.chatroomClient.chatroomService.setMemberChatBannedStatus('accid', true, 'extension')
设置聊天室成员临时禁言状态
通过调用 setMemberTempChatBanned
方法来设置聊天室成员临时禁言状态,支持将成员临时禁言或解除临时禁言。
被临时禁言后(临时禁言时长不为 0):
- 聊天室所有成员收到成员信息变更回调
onChatroomMemberInfoUpdated
和类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_TEMP_CHAT_BANNED_ADDED(8)
的通知消息。 - 聊天室临时禁言用户收到临时禁言状态变更回调
onSelfTempChatBannedUpdated
,临时禁言期间内无法在聊天室内发送消息,但可以接收消息。临时禁言结束后,恢复发送消息权限。
解除永久禁言后(临时禁言时长为 0):
- 聊天室所有成员收到成员信息变更回调
onChatroomMemberInfoUpdated
和类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_TEMP_CHAT_BANNED_REMOVED(9)
的通知消息。 - 聊天室临时禁言用户收到禁言状态变更回调
onSelfTempChatBannedUpdated
,恢复在聊天室内发送消息权限。
- 该操作仅聊天室创建者和管理员有权限。
- 如果被操作方为管理员,则仅聊天室创建者有权限。
- 不允许操作虚构用户和匿名游客。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
String | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
tempChatBannedDuration |
long | 是 | - | 临时禁言时长(秒)。不可超过 30 天。 设置为 0 表示解除临时禁言。 |
notificationEnabled |
boolean | 是 | - | 操作后是否需要通知 |
notificationExtension |
String | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
NSString * | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
tempChatBannedDuration |
NSInteger | 是 | - | 临时禁言时长(秒)。不可超过 30 天。 设置为 0 表示解除临时禁言。 |
notificationEnabled |
BOOL | 是 | - | 操作后是否需要通知 |
notificationExtension |
nullable NSString * | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
nstd::string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
tempChatBannedDuration |
long | 是 | - | 临时禁言时长(秒)。不可超过 30 天。 设置为 0 表示解除临时禁言。 |
notificationEnabled |
bool | 是 | - | 操作后是否需要通知 |
notificationExtension |
nstd::string | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 设置成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 设置失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
tempChatBannedDuration |
number | 是 | - | 临时禁言时长(秒)。不可超过 30 天。 设置为 0 表示解除临时禁言。 |
notificationEnabled |
boolean | 是 | - | 操作后是否需要通知 |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 聊天室用户账号,如果为空、不合法、不存在,则返回 191004 参数错误。 不允许传入虚构用户和匿名游客的用户账号。 |
tempChatBannedDuration |
number | 是 | - | 临时禁言时长(秒)。不可超过 30 天。 设置为 0 表示解除临时禁言。 |
notificationEnabled |
boolean | 是 | - | 操作后是否需要通知 |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
- 示例代码
java// 通过实例 ID 获取聊天室实例
V2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 被操作的账号 ID
String accountId = "test";
// 设置临时禁言时长,单位:秒,单次最大:30天,取消则设置为:0
long tempChatBannedDuration = 1000L;
// 是否需要发送广播通知,true:通知,false:不通知
boolean notificationEnabled = true;
// 设置通知扩展字段,可不传
String notificationExtension = "xxx";
v2ChatroomService.setMemberTempChatBanned(accountId, tempChatBannedDuration, notificationEnabled, notificationExtension, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// 设置成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 设置失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
// 被操作的账号 ID
NSString *accountId = @"test";
// 设置临时禁言时长,单位:秒,单次最大:30天,取消则设置为:0
long tempChatBannedDuration = 1000L;
// 是否需要发送广播通知,true:通知,false:不通知
BOOL notificationEnabled = YES;
// 设置通知扩展字段,可不传
NSString *notificationExtension = @"xxx";
[service setMemberTempChatBanned:accountId
tempChatBannedDuration:tempChatBannedDuration
notificationEnabled:notificationEnabled
notificationExtension:notificationExtension
success:^()
{
// 设置成功
}
failure:^(V2NIMError *error)
{
// 设置失败
}];
cppchatroomService.setMemberTempChatBanned(
"accountId",
60,
true,
"notificationExtension",
[]() {
// set member temp chat banned succeeded
},
[](V2NIMError error) {
// set member temp chat banned failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.setMemberTempChatBanned('accid', 60 * 1000, true, 'extension')
typescriptawait this.chatroomClient.chatroomService.setMemberTempChatBanned('accid', 60 * 1000, true, 'extension')
踢出聊天室成员
通过调用 kickMember
方法将指定成员踢出聊天室。踢出的同时退出聊天室。
踢出成功后:
- 被踢用户收到被踢出聊天室回调
onChatroomKicked
,以及退出聊天室回调onChatroomExited
。 - 聊天室内所有成员收到成员退出聊天室
onChatroomMemberExit
回调,及类型为V2NIMChatroomMessageNotificationType.V2NIM_CHATROOM_MESSAGE_NOTIFICATION_TYPE_MEMBER_KICKED(7)
的通知消息。
- 该操作仅聊天室创建者和管理员有权限。
- 如果被操作方为管理员,则仅聊天室创建者有权限。
- 不允许操作虚构用户和匿名游客。
- 参数说明
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
String | 是 | - | 踢出聊天室的成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
notificationExtension |
String | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 踢出成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 踢出失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
NSString * | 是 | - | 踢出聊天室的成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
notificationExtension |
nullable NSString * | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 踢出成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 踢出失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
nstd::string | 是 | - | 踢出聊天室的成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
notificationExtension |
nstd::string | 否 | null | 本次操作生成的通知中的扩展字段 |
success |
V2NIMSuccessCallback |
是 | - | 踢出成功回调 |
failure |
V2NIMFailureCallback |
是 | - | 踢出失败回调,返回错误码。 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 踢出聊天室的成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
参数名称 | 类型 | 是否必填 | 默认值 | 描述 |
---|---|---|---|---|
accountId |
string | 是 | - | 踢出聊天室的成员账号,如果为空、不合法、不存在,则返回 191004 参数错误。 |
notificationExtension |
string | 否 | null | 本次操作生成的通知中的扩展字段 |
- 示例代码
javaV2NIMChatroomClient v2ChatroomClient = V2NIMChatroomClient.getInstance(instanceId);
V2NIMChatroomService v2ChatroomService = v2ChatroomClient.getChatroomService();
// 被踢的成员ID
String accountId = "test";
// 设置通知扩展字段,可不传
String notificationExtension = "xxx";
v2ChatroomService.kickMember(accountId, notificationExtension, new V2NIMSuccessCallback<Void>() {
@Override
public void onSuccess(Void unused) {
// 踢出成功
}
}, new V2NIMFailureCallback() {
@Override
public void onFailure(V2NIMError error) {
// 踢出失败
}
});
objective-c// 通过实例 ID 获取聊天室实例
id <V2NIMChatroomService> service = [[V2NIMChatroomClient getInstance:1] getChatroomService];
// 被踢的成员 ID
NSString *accountId = @"accountId";
// 设置通知扩展字段,可不传
NSString *notificationExtension = @"xxx";
[service kickMember:accountId
notificationExtension:notificationExtension
success:^() {
// 踢出成功
}
failure:^(V2NIMError *error) {
// 踢出失败
}];
cppchatroomService.kickMember(
"accountId",
"notificationExtension",
[]() {
// kick member succeeded
},
[](V2NIMError error) {
// kick member failed, handle error
});
typescriptawait chatroom.V2NIMChatroomService.kickMember('account', 'notificationExtension')
typescriptawait this.chatroomClient.chatroomService.kickMember('account', 'notificationExtension')