云端会话分组管理
更新时间: 2024/08/28 14:28:00
会话分组是将多个相关主题或目的的聊天会话组织在一起的一种方式。云信 IM 支持将用户会话进行分组,方便用户管理和查找他们的历史聊天会话。
本文介绍如何调用 NIM SDK 的接口实现用户会话分组管理,包括创建、删除、更新、获取会话分组,以及将会话添加到分组中。
服务端会话分组请参考新版服务端 API-会话分组管理。
前提条件
限制说明
不同的 IM 套餐包中,每个用户账号能创建的会话分组数量上限,以及每个会话分组中的会话数量上限都不同。具体可参考 各套餐详细对比信息 中的会话相关信息。
监听会话分组相关事件
在进行会话相关操作前,您可以提前注册监听相关事件。注册成功后,当会话分组相关事件发生时,SDK 会触发对应回调通知。
Android/iOS/macOS/Windows
调用 addConversationGroupListener
方法注册会话分组相关监听器,监听会话分组创建、删除、变更及添加移除会话。
-
相关回调:
onConversationGroupCreated
:会话分组成功创建回调。当本地端或多端同步创建会话分组成功时会触发该回调。onConversationGroupDeleted
:主动删除会话分组回调。当本地端或多端同步删除会话分组成功时会触发该回调。onConversationGroupChanged
:会话分组变更回调。当本地端或多端更新会话分组成功时会触发该回调。onConversationsAddedToGroup
:添加会话到会话分组回调。当本地端或多端同步添加会话到分组成功时会触发该回调。onConversationsRemovedFromGroup
:会话从分组移除回调。 当本地端或多端同步移除会话成功时会触发该回调。
-
示例代码:
Androidjava
V2NIMConversationGroupListener listener = new V2NIMConversationGroupListener() { @Override public void onConversationGroupCreated(V2NIMConversationGroup conversationGroup) { // handle conversation group created event } @Override public void onConversationGroupDeleted(String groupId) { // handle conversation group deleted event } @Override public void onConversationGroupChanged(V2NIMConversationGroup conversationGroup) { // handle conversation group changed event } @Override public void onConversationsAddedToGroup(String groupId, List<V2NIMConversation> conversations) { // handle conversation add to group event } @Override public void onConversationsRemovedFromGroup(String groupId, List<String> conversationIds) { // handle conversation remove from group event } }; NIMClient.getService(V2NIMConversationGroupService.class).addConversationGroupListener (listener);
iOSobjective-c
@interface V2ConversationGroupServiceSample : NSObject <V2NIMConversationGroupListener> @end @implementation V2ConversationGroupServiceSample - (void)onConversationGroupCreated:(V2NIMConversationGroup *)conversationGroup { // handle conversation group created event } - (void)onConversationGroupDeleted:(NSString *)groupId { // handle conversation group deleted event } - (void)onConversationGroupChanged:(V2NIMConversationGroup *)conversationGroup { // handle conversation group changed event } - (void)onConversationsAddedToGroup:(NSString *)groupId conversations:(NSArray<V2NIMConversation *> *)conversations { // handle conversation add to group event } - (void)onConversationsRemovedFromGroup:(NSString *)groupId conversationIds:(NSArray<NSString *> *)conversationIds { // handle conversation remove from group event } - (void)addConversationGroupListener { [NIMSDK.sharedSDK.v2ConversationGroupService addConversationGroupListener:self]; } @end
macOS/WindowsC++
V2NIMConversationGroupListener listener; listener.onConversationGroupCreated = [](V2NIMConversationGroup conversationGroup, V2NIMConversationList conversations) { // handle conversation group created event }; listener.onConversationGroupDeleted = [](nstd::string groupId) { // handle conversation group deleted event }; listener.onConversationGroupChanged = [](V2NIMConversationGroup conversationGroup) { // handle conversation group changed event }; listener.onConversationsAddedToGroup = [](nstd::string groupId, V2NIMConversationList conversations) { // handle conversation add to group event }; listener.onConversationsRemovedFromGroup = [](nstd::string groupId, nstd::vector<nstd::string> conversationIds) { // handle conversation remove from group event }; conversationGroupService.addConversaionGroupListener(listener);
如需移除会话分组相关监听器,可调用
removeConversationGroupListener
。Androidjava
NIMClient.getService(V2NIMConversationGroupService.class). removeConversationGroupListener(listener);
iOSobjective-c
id<V2NIMConversationGroupListener> listener; [NIMSDK.sharedSDK.v2ConversationGroupService removeConversationGroupListener:listener];
macOS/WindowsC++
V2NIMConversationGroupListener listener; conversationGroupService.removeConversaionGroupListener(listener);
Web/uni-app/小程序/Harmony
调用 on("EventName")
方法注册会话分组相关监听,监听会话分组创建、删除、变更及添加移除会话。
-
相关回调:
onConversationGroupCreated
:会话分组成功创建回调。当本地端或多端同步创建会话分组成功时会触发该回调。onConversationGroupDeleted
:主动删除会话分组回调。当本地端或多端同步删除会话分组成功时会触发该回调。onConversationGroupChanged
:会话分组变更回调。当本地端或多端更新会话分组成功时会触发该回调。onConversationsAddedToGroup
:添加会话到会话分组回调。当本地端或多端同步添加会话到分组成功时会触发该回调。onConversationsRemovedFromGroup
:会话从分组移除回调。 当本地端或多端同步移除会话成功时会触发该回调。
-
示例代码:
Web/uni-app/小程序typescript
nim.V2NIMConversationGroupService.on("onConversationGroupCreated", function (conversationGroup: V2NIMConversationGroup) {}); nim.V2NIMConversationGroupService.on("onConversationGroupDeleted", function(groupId: string) {}); nim.V2NIMConversationGroupService.on("onConversationGroupChanged", function (conversationGroup: V2NIMConversationGroup) {}); nim.V2NIMConversationGroupService.on("onConversationsAddedToGroup", function(groupId: string, conversations: V2NIMConversationGroup[]) {}); nim.V2NIMConversationGroupService.on("onConversationsRemovedFromGroup", function (groupId: string, conversationIds: string[]) { // Success // if filter.equals(TARGET_FILTER) });
Harmonytypescript
nim.conversationGroupService.on('onConversationGroupCreated', (conversationGroup: V2NIMConversationGroup) => {}) nim.conversationGroupService.on('onConversationGroupDeleted', (groupId: string) => {}) nim.conversationGroupService.on('onConversationGroupChanged', (conversationGroup: V2NIMConversationGroup) => {}) nim.conversationGroupService.on('onConversationsAddedToGroup', (groupId: string, list: V2NIMConversation[]) => {}) nim.conversationGroupService.on('onConversationsRemovedFromGroup', (groupId: string, list: string[]) => {})
如需移除会话分组相关监听,可调用
off("EventName")
。Web/uni-app/小程序typescript
nim.V2NIMConversationGroupService.off("onConversationGroupCreated") nim.V2NIMConversationGroupService.off("onConversationGroupDeleted") nim.V2NIMConversationGroupService.off("onConversationGroupChanged") nim.V2NIMConversationGroupService.off("onConversationsAddedToGroup") nim.V2NIMConversationService.off("onConversationsRemovedFromGroup")
Harmonytypescript
nim.conversationGroupService.off('onConversationGroupCreated', lisnterFn) nim.conversationGroupService.off('onConversationGroupDeleted', lisnterFn) nim.conversationGroupService.off('onConversationGroupChanged', lisnterFn) nim.conversationGroupService.off('onConversationsAddedToGroup', lisnterFn) nim.conversationGroupService.off('onConversationsRemovedFromGroup', lisnterFn)
创建会话分组
调用 createConversationGroup
创建一个会话分组,并指定分组中的会话列表。
本地端或多端同步创建成功后,SDK 会返回创建成功回调 onConversationGroupCreated
,并同步缓存和数据库。
如不需要该分组,建议及时调用 deleteConversationGroup
方法删除。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 name
String 是 - 会话分组名称。不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组服务端扩展字段,多端同 步。 conversationIds
List 否 - 会话 ID 列表 - 可以为空
- 最多传入 1000 个会话 ID。
success
V2NIMSuccessCallback
是 - 创建会话分组成功回调,返回 V2NIMConversationGroupResult
,包含会话分组信息和创建分组失败的会话 ID 列表。failure
V2NIMFailureCallback
是 - 创建会话分组失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 name
String 是 - 会话分组名称。不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组服务端扩展字段,多端同步。 conversationIds
List 否 - 会话 ID 列表 - 可以为空
- 最多传入 1000 个会话 ID。</ li>
success
V2NIMConversationGroupResultCallback
是 - 创建会话分组成功回调,可自定 义。 failure
V2NIMFailureCallback
是 - 创建会话失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 name
String 是 - 会话分组名称。不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组服务端扩展字段,多端同步。 conversationIds
List 否 - 会话 ID 列表 - 可以为空
- 最多传入 1000 个会话 ID。
success
V2NIMSuccessCallback
是 - 创建会话分组成功回调,返回 V2NIMConversationGroupResult
,包含会话分组信息和创建分组失败的 会话 ID 列表。failure
V2NIMFailureCallback
是 - 创建会话分组失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 name
String 是 - 会话分组名称。不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组服务端扩展字段,多端同步。 conversationIds
string[] 否 - 会话 ID 列表 - 可以为空。
- 最多传入 1000 个会话 ID。
Harmony参数名称 类型 是否必填 默认值 描述 name
String 是 - 会话分组名称。不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组服务端扩展字段,多端同步。 conversationIds
string[] 否 - 会话 ID 列表 - 可以为空。
- 最多传入 1000 个会话 ID。
-
示例代码:
Androidjava
List<String> conversationIds = new ArrayList<>(); conversationIds.add("conversationId"); NIMClient.getService(V2NIMConversationGroupService.class) .createConversationGroup("name", "serverExtension", conversationIds, new V2NIMSuccessCallback<V2NIMConversationGroupResult>() { @Override public void onSuccess(V2NIMConversationGroupResult v2NIMConversationGroupResult) { // receive v2NIMConversationGroupResult and check failed list } }, new V2NIMFailureCallback() { @Override public void onFailure(V2NIMError error) { int code = error.getCode(); String desc = error.getDesc(); // handle error } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService createConversationGroup:@"name" serverExtension:@"serverExtension" conversationIds:@[@"conversationIdA", @"conversationIdB"] success:^(V2NIMConversationGroupResult * _Nonnull result) { // receive result and check failed list } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
auto conversationIds = nstd::vector<nstd::string>{}; conversationIds.emplace_back(V2NIMConversationIdUtil::p2pConversationId("account1")); conversationIds.emplace_back(V2NIMConversationIdUtil::teamConversationId("team1")); conversationGroupService.createConversationGroup( "group1", conversationIds, [](V2NIMConversationGroupResult result) { // receive result and check failed list }, [](V2NIMError error) { // create conversation group failed, handle error });
Web/uni-app/小程序typescript
const conversationId1 = nim.V2NIMConversationIdUtil.p2pConversationId ('TARGET_ACCOUNT_ID') const conversationId2 = nim.V2NIMConversationIdUtil.teamConversationId ('TARGET_TEAM_ID') try { const result = await nim.V2NIMConversationGroupService.createConversationGroup ('GROUP_NAME', '', [conversationId1, conversationId2]) // receive result and check failed list // console.log(result.group) } catch (err) { // handle error // console.error(error.code) }
Harmonytypescript
const conversationId1 = nim.conversationIdUtil.p2pConversationId('TARGET_ACCOUNT_ID') const conversationId2 = nim.conversationIdUtil.teamConversationId('TARGET_TEAM_ID') try { const result = await nim.conversationGroupService.createConversationGroup('GROUP_NAME', '', [conversationId1, conversationId2]) // todo success. // console.log(result.group) } catch (err) { // TODO failed. // console.error(error.code) }
获取会话分组
获取指定单个会话分组
调用 getConversationGroup
按照会话分组 ID 获取指定会话分组。
- 请确保该会话分组存在,否则返回资源不存在错误。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整数据。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 获取成功回调,返回 V2NIMConversationGroup
。failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 success
V2NIMConversationGroupCallback
是 - 获取会话分组成功回调,可自定义设置。 failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 获取成功回调,返回 V2NIMConversationGroup
。failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 Harmony参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 -
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).getConversationGroup ("groupId", new V2NIMSuccessCallback<V2NIMConversationGroup>(){ @Override public void onSuccess(V2NIMConversationGroup group){ // receive group } }, new V2NIMFailureCallback(){ @Override public void onFailure(V2NIMError error){ int code = error.getCode(); String desc = error.getDesc(); // handle error } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService getConversationGroup:@"groupId" success:^(V2NIMConversationGroup * _Nonnull group) { // receive group } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
conversationGroupService.getConversationGroup( "groupId", [](V2NIMConversationGroup group) { // get conversation group succeeded }, [](V2NIMError error) { // get conversation group failed, handle error });
Web/uni-app/小程序typescript
try { const group = await nim.V2NIMConversationGroupService.getConversationGroup ('GROUP_ID') // todo: success } catch (err) { // todo: fail // console.error(error.code) }
Harmonytypescript
try { const group = await nim.conversationGroupService.getConversationGroup('GROUP_ID') // todo success. } catch (err) { // TODO failed. // console.error(error.code) }
获取所有会话分组信息
调用 getConversationGroupList
方法获取获取全量会话分组信息。
如果会话数据同步已开始(收到 V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到 V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整数据。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 success
V2NIMSuccessCallback
是 - 获取成功回调,返回 List< V2NIMConversationGroup
>。failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 success
V2NIMConversationGroupListCallback
是 - 获取成功回调,可自定义设置。 failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 success
V2NIMSuccessCallback
是 - 获取成功回调,返回 V2NIMConversationGroup
。failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 Web/uni-app/小程序无参数
Harmony无参数
-
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).getConversationGroupList(new V2NIMSuccessCallback<List<V2NIMConversationGroup>>(){ @Override public void onSuccess(List<V2NIMConversationGroup> result){ // TODO } }, new V2NIMFailureCallback(){ @Override public void onFailure(V2NIMError error){ int code = error.getCode(); String desc = error.getDesc(); // TODO } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService getConversationGroupList:^ (NSArray<V2NIMConversationGroup *> * _Nonnull groups) { // receive all groups } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
conversationGroupService.getConversationGroupList( [](V2NIMConversationGroupList groupList) { // get conversation group list succeeded }, [](V2NIMError error) { // get conversation group list failed, handle error });
Web/uni-app/小程序typescript
try { const groupList = await nim.V2NIMConversationGroupService.getConversationGroupList() // todo: success } catch (err) { // todo: failed // console.error(error.code) }
Harmonytypescript
try { const groupList = await nim.conversationGroupService.getConversationGroupList() // todo success. } catch (err) { // TODO failed. // console.error(error.code) }
批量获取指定的会话分组列表
调用 getConversationGroupListByIds
按照会话 ID 批量获取会话列表。
- 请确保该会话分组存在,否则返回资源不存在错误。
- 如果会话数据同步已开始(收到
V2NIMConversationListener.onSyncStarted
回调),建议您在数据同步完成(收到V2NIMConversationListener.onSyncFinished
回调)后再进行该操作,否则可能查询不到完整数据。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 groupIds
List 是 - 会话分组 ID 列表。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 获取成功回调,返回 List< V2NIMConversationGroup
>。failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 groupIds
NSArray 是 - 会话分组 ID 列表。不可设置为空,否则返回 191004 参数错误。 success
V2NIMConversationGroupListCallback
是 - 获取成功回调,可自定义设置。 failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 groupIds
String 是 - 会话分组 ID 列表。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 获取成功回调,返回 List< V2NIMConversationGroup
>。failure
V2NIMFailureCallback
是 - 获取失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 groupIds
String[] 是 - 会话分组 ID 列表。不可设置为空,否则返 回 191004 参数错误。 Harmony参数名称 类型 是否必填 默认值 描述 groupIds
String[] 是 - 会话分组 ID 列表。不可设置为空,否则返 回 191004 参数错误。 -
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).getConversationGroupListByIds (groupIds,new V2NIMSuccessCallback<List<V2NIMConversationGroup>>(){ @Override public void onSuccess(List<V2NIMConversationGroup> result){ // receive groups } }, new V2NIMFailureCallback(){ @Override public void onFailure(V2NIMError error){ int code = error.getCode(); String desc = error.getDesc(); // handle error } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService getConversationGroupListByIds:@ [@"groupIdA", @"groupIdB"] success:^(NSArray<V2NIMConversationGroup *> * _Nonnull groups) { // receive groups } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
auto groupIds = nstd::vector<nstd::string>{}; groupIds.emplace_back("groupId1"); groupIds.emplace_back("groupId2"); conversationGroupService.getConversationGroupListByIds( groupIds, [](V2NIMConversationGroupList groupList) { // get conversation group list by ids succeeded }, [](V2NIMError error) { // get conversation group list by ids failed, handle error });
Web/uni-app/小程序typescript
try { const groupList = await nim.V2NIMConversationGroupService. getConversationGroupListByIds(["GROUP_ID1"]) // todo: success } catch (err) { // todo: fail // console.error(error.code) }
Harmonytypescript
try { const groupList = await nim.conversationGroupService.getConversationGroupListByIds(["GROUP_ID1"]) // todo success. } catch (err) { // TODO failed. // console.error(error.code) }
更新会话
调用 updateConversationGroup
更新会话分组。
本地端或多端同步更新成功后,SDK 会返回更新成功回调 onConversationGroupChanged
,并同步缓存和数据库。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 name
String 否 - 会话分组名称。可设置为 null/undefined,表示不更改;不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组扩展字段 success
V2NIMSuccessCallback
是 - 更新会话分组成功回调 failure
V2NIMFailureCallback
是 - 更新会话分组失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 name
String 否 - 会话分组名称。可设置为 null/undefined,表示不更改;不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组扩展字段 success
V2NIMSuccessCallback
是 - 更新会话分组成功回调 failure
V2NIMFailureCallback
是 - 更新会话分组失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 name
String 否 - 会话分组名称。可设置为 null/undefined,表示不更改;不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组扩展字段 success
V2NIMSuccessCallback
是 - 更新会话分组成功回调 failure
V2NIMFailureCallback
是 - 更新会话分组失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 name
String 否 - 会话分组名称。可设置为 null/undefined,表示不更改;不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组扩展字段 Harmony参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 name
String 否 - 会话分组名称。可设置为 null/undefined,表示不更改;不可设置为空,否则返回 191004 参数错误。 serverExtension
String 否 - 会话分组扩展字段 -
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).updateConversationGroup ("groupId", "newname", "serverExtension", new V2NIMSuccessCallback<Void>() { @Override public void onSuccess(Void unused) { // update successfully } }, new V2NIMFailureCallback() { @Override public void onFailure(V2NIMError error) { int code = error.getCode(); String desc = error.getDesc(); // handle error } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService updateConversationGroup:@"groupId" name:@"newName" serverExtension:@"newServerExtension" success:^{ // update successfully } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
conversationGroupService.updateConversaionGroup( "groupId", "name", "serverExtension", [](V2NIMConversationGroup group) { // update conversation group succeeded }, [](V2NIMError error) { // update conversation group failed, handle error });
Web/uni-app/小程序typescript
try { const group = await nim.V2NIMConversationGroupService.createConversationGroup ('GROUP_ID', 'NAME', "SERVER_EXTENSION") // todo: success } catch (err) { // todo: fail // console.error(error.code) }
Harmonytypescript
try { const group = await nim.conversationGroupService.createConversationGroup('GROUP_ID', 'NAME', "SERVER_EXTENSION") // todo success. } catch (err) { // TODO failed. // console.error(error.code) }
删除会话
调用 deleteConversationGroup
根据会话 ID 删除指定会话分组。
本地端或多端同步删除成功后,SDK 会返回删除成功回调 onConversationGroupDeleted
,并同步缓存和数据库。会话所属的分组列表也随之删除该会话分组。
请确保该会话分组已存在,否则返回资源不存在错误。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 删除会话分组成功回调 failure
V2NIMFailureCallback
是 - 删除会话分组失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 删除会话分组成功回调 failure
V2NIMFailureCallback
是 - 删除会话分组失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 success
V2NIMSuccessCallback
是 - 删除会话分组成功回调 failure
V2NIMFailureCallback
是 - 删除会话分组失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 Harmony参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID。不可设置为空,否则返回 191004 参数错误。 -
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).deleteConversationGroup("会话 分组id",new V2NIMSuccessCallback<Void>(){ @Override public void onSuccess(Void unused) { // delete successfully } }, new V2NIMFailureCallback(){ @Override public void onFailure(V2NIMError error){ int code = error.getCode(); String desc = error.getDesc(); // handle error } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService deleteConversationGroup:@"groupId" success:^{ // delete successfully } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
conversationGroupService.deleteConversationGroup( "groupId", []() { // delete conversation group succeeded }, [](V2NIMError error) { // delete conversation group failed, handle error });
Web/uni-app/小程序typescript
try { await nim.V2NIMConversationGroupService.deleteConversationGroup('GROUP_ID') // todo: success } catch (err) { // todo: fail // console.error(error.code) }
Harmonytypescript
try { await nim.conversationGroupService.deleteConversationGroup('GROUP_ID') // todo success. } catch (err) { // TODO failed. // console.error(error.code) }
将会话添加到分组
调用 addConversationsToGroup
方法将指定会话列表批量添加到指定的会话分组。
添加成功后,SDK 会返回添加失败的会话 ID 及其错误信息,并触发添加成功回调 onConversationsAddedToGroup
,同步缓存和数据库。
- 请注意每个会话最多属于 5 个分组。
- 建议您在会话数据同步完成(收到
onSyncFinished
回调)后再进行该操作。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
List 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多添加 100 个会话 ID。
success
V2NIMSuccessCallback
是 - 添加成功回调,返回 List<V2NIMConversationOperationResult>,仅包含添加失败的会话 ID 及其错误信息。 failure
V2NIMFailureCallback
是 - 添加失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
List 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多 添加 100 个会话 ID。
- 每个会话 ID 最多从属于 5 个会话分组。
success
V2NIMConversationOperationResultListCallback
是 - 添加成功回调,可自定义设置。 failure
V2NIMFailureCallback
是 - 添加失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
List 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多添加 100 个会话 ID。
- 每个会话 ID 最多从属 于 5 个会话分组。
success
V2NIMSuccessCallback
是 - 添加成功回调,返回 V2NIMConversationOperationResult 列表,仅包含添加失败的会话 ID 及其错误信息。 failure
V2NIMFailureCallback
是 - 添加失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
string[] 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多添加 100 个会话 ID。
- 每个会话 ID 最多从属 于 5 个会话分组。
Harmony参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
string[] 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多添加 100 个会话 ID。
- 每个会话 ID 最多从属 于 5 个会话分组。
-
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).addConversationsToGroup ("groupId", conversationIds, new V2NIMSuccessCallback<List<V2NIMConversationOperationResult>>() { @Override public void onSuccess(List<V2NIMConversationOperationResult> results) { // receive results and check failed list } }, new V2NIMFailureCallback() { @Override public void onFailure(V2NIMError error) { int code = error.getCode(); String desc = error.getDesc(); // handle error } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService addConversationsToGroup:@"groupId" conversationIds:@[@"conversationIdA", @"conversationIdB"] success:^ (NSArray<V2NIMConversationOperationResult *> * _Nonnull resultList) { // receive resultList and check failed list } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
auto conversationIds = nstd::vector<nstd::string>{}; conversationIds.emplace_back(V2NIMConversationId::p2pConversationId("account1")); conversationIds.emplace_back(V2NIMConversationId::teamConversationId("team1")); conversationGroupService.addConversationsToGroup( "groupId", conversationIds, [](nstd::vector<V2NIMConversationOperationResult> failedList) { // add conversations to group succeeded }, [](V2NIMError error) { // add conversations to group failed, handle error });
Web/uni-app/小程序typescript
nim.V2NIMConversationGroupService.on('onConversationsAddedToGroup', function (groupId: string, list: V2NIMConversation[]) {}) try { const conversationId1 = nim.V2NIMConversationIdUtil.p2pConversationId("account1") const conversationId2 = nim.V2NIMConversationIdUtil.teamConversationId("team1") const group = await nim.V2NIMConversationGroupService.addConversationToGroup ('GROUP_ID', [ conversationId1, conversationId2 ]) // todo: success } catch (err) { // todo: fail // console.error(error.code) }
Harmonytypescript
nim.conversationGroupService.on('onConversationsAddedToGroup', (groupId: string, list: V2NIMConversation[]) => {}) try { const conversationId1 = nim.conversationIdUtil.p2pConversationId("account1") const conversationId2 = nim.conversationIdUtil.teamConversationId("team1") const group = await nim.conversationGroupService.addConversationToGroup('GROUP_ID', [ conversationId1, conversationId2 ]) // todo success. } catch (err) { // TODO failed. // console.error(error.code) }
将会话从分组中移除
调用 removeConversationsFromGroup
方法将指定会话列表从指定的会话分组中批量移除。
移除成功后,SDK 会返回移除失败的会话 ID 及其错误信息,并触发移除成功回调 onConversationsRemovedFromGroup
,同步缓存和数据库。
建议您在会话数据同步完成(收到 onSyncFinished
回调)后再进行该操作。
-
参数说明:
Android参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
List 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多移除 100 个会话 ID。
success
V2NIMSuccessCallback
是 - 移除成功回调,返回 List< V2NIMConversationOperationResult
>,仅包含移除失败的会话 ID 及其错误信息。failure
V2NIMFailureCallback
是 - 移除失败回调,返回错误码。 iOS参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
List 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多移除 100 个会话 ID。
success
V2NIMConversationOperationResultListCallback
是 - 移除成功回调,可自定义设 置。 failure
V2NIMFailureCallback
是 - 移除失败回调,返回错误码。 macOS/Windows参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
List 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多移除 100 个会话 ID。
success
V2NIMSuccessCallback
是 - 移除成功回调,返回 List< V2NIMConversationOperationResult
>,仅包含移除失败的会话 ID 及其错误信息。failure
V2NIMFailureCallback
是 - 移除失败回调,返回错误码。 Web/uni-app/小程序参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
string[] 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多移除 100 个会话 ID。
Harmony参数名称 类型 是否必填 默认值 描述 groupId
String 是 - 会话分组 ID,如果为空、不合法、不存在则返回 191004 参数错误。 conversationIds
string[] 是 - 会话 ID 列表 - 不可为空,否则返回 191004 参数错误。
- 每次最多移除 100 个会话 ID。
-
示例代码:
Androidjava
NIMClient.getService(V2NIMConversationGroupService.class).removeConversationsFromGroup("groupId",conversationIds, new V2NIMSuccessCallback<List<V2NIMConversationOperationResult>>(){ @Override public void onSuccess(List<V2NIMConversationOperationResult> results){ // receive results and check failed list } }, new V2NIMFailureCallback(){ @Override public void onFailure(V2NIMError error){ int code = error.getCode(); String desc = error.getDesc(); // TODO } });
iOSobjective-c
[NIMSDK.sharedSDK.v2ConversationGroupService removeConversationsFromGroup:@"groupId" conversationIds:@[@"conversationIdA", @"conversationIdB"] success:^(NSArray<V2NIMConversationOperationResult *> * _Nonnull resultList) { // receive resultList and check failed list } failure:^(V2NIMError * _Nonnull error) { // handle error }];
macOS/WindowsC++
conversationIds.emplace_back(V2NIMConversationId::p2pConversationId("account1")); conversationIds.emplace_back(V2NIMConversationId::teamConversationId("team1")); conversationGroupService.removeConversationsFromGroup( "groupId", conversationIds, [](nstd::vector<V2NIMConversationOperationResult> failedList) { // remove conversations from group succeeded }, [](V2NIMError error) { // remove conversations from group failed, handle error });
Web/uni-app/小程序typescript
try { const conversationId1 = nim.V2NIMConversationIdUtil.p2pConversationId("account1") const conversationId2 = nim.V2NIMConversationIdUtil.teamConversationId("team1") const group = await nim.V2NIMConversationGroupService.removeConversationsFromGroup('GROUP_ID', [ conversationId1, conversationId2 ]) // todo: success } catch (err) { // todo: fail // console.error(error.code) }
Harmonytypescript
nim.conversationGroupService.on('onConversationsRemovedFromGroup', (groupId: string, list: string[]) => {}) try { const conversationId1 = nim.conversationIdUtil.p2pConversationId("account1") const conversationId2 = nim.conversationIdUtil.teamConversationId("team1") const group = await nim.conversationGroupService.removeConversationsFromGroup('GROUP_ID', [ conversationId1, conversationId2 ]) // todo success. } catch (err) { // TODO failed. // console.error(error.code) }