• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
React Native/
群组/
SDK
  • Run Demo
  • SDK 集成
  • 初始化
  • 登录和注销
  • 消息
    • 消息概述
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 修改消息
    • 消息插入
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群 @ 消息
    • 定向群消息
    • 通知免打扰
    • 消息扩展
  • 群组
    • 产品概述
    • 群组管理
    • 群资料
    • 群成员管理
    • 群成员资料
    • 自定义群属性
    • 社群管理
  • 用户
    • 用户资料
    • 好友管理
    • 好友列表
    • 黑名单
  • 离线推送
    • 离线推送
  • 局部搜索
    • 查找消息
    • 查找好友
    • 查找群组
    • 查找群成员
  • 信令
    • 信令管理
  • Changelog
  • 开发指引
  • 控制台指南
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 购买指南
    • 计费概述
    • 价格中心
  • 错误码

社群管理

功能描述

社群是一个由于共同主题而让大家聚集在一起的超大群组,可以在社群下根据不同兴趣创建多个话题。 社群用来管理群成员。社群下的所有话题不仅可以共享社群成员,还可以独立收发消息而不相互干扰。
社群和话题的管理接口在核心类 TencentImSDKPlugin.v2TIMManager.getGroupManager() 中。
话题中的消息相关接口在核心类 TencentImSDKPlugin.v2TIMManager.getMessageManager() 中。
说明:
购买旗舰版 并在 控制台 > 功能配置 > 群组配置 > 群功能配置 > 社群 打开开关后方可使用。

社群管理

创建社群

创建支持话题的社群分两步:
1. 创建 V2TIMGroupInfo (Details) 对象,其中 groupType 设置为 CommunityisSupportTopic 设置为 true/YES
2. 调用 createGroup (Details) 接口创建群组。
示例代码如下:
// 创建只会社群的话题
groupManager.createGroup(groupType: "Community", groupName: "社群",isSupportTopic: true);

获取加入的社群列表

调用 getJoinedCommunityList(Details) 获取已经加入的支持话题的社群列表。
示例代码如下:
// 获取加入的社群列表
const groupList = await groupManager.getJoinedCommunityList();

其他管理接口

其他功能跟普通群组使用方法一样,涉及的接口有:
分类
功能
接口
社群管理
joinGroup (TS
quitGroup (TS
dismissGroup (TS
getGroupsInfo (TS
setGroupInfo (TS
社群成员管理
getGroupMemberList (TS
getGroupMembersInfo (TS
setGroupMemberInfo (TS
kickGroupMember (TS


话题管理

同一社群下可创建多个话题,多个话题共享一套社群成员关系,但不同话题内独立收发消息、互不干扰。
说明:
需在 控制台 > 功能配置 > 群组配置 > 群功能配置 > 社群 页面,完成开通社群后,再打开开通话题开关,方可使用。

创建话题

创建话题分两步:
1. 创建 V2TIMTopicInfo (Details) 对象。
2. 调用 createTopicInCommunity (Details) 接口创建话题。
示例代码如下:
// 创建话题
groupManager.createTopicInCommunity("groupID", {
topicName: "topic",
});

删除话题

调用 deleteTopicFromCommunity(Details) 接口删除话题。
示例代码如下:
// 删除话题
groupManager.deleteTopicFromCommunity("groupID", ["topicID"]);

修改话题信息

修改话题信息分两步:
1. 创建 V2TIMTopicInfo (Details) 对象,并设置需要修改的字段
2. 调用 setTopicInfo (Details) 接口修改话题信息
示例代码如下:
// 修改话题信息
groupManager.setTopicInfo({
topicName: "topicName",
});

获取话题列表

调用 getTopicInfoList (Details) 接口获取话题列表。
当 topicIDList 列表为空时,为获取该社群下的所有话题列表
当 topicIDList 填入指定的话题 ID 时,为获取填入的话题列表
示例代码如下:
// 获取话题列表
groupManager.getTopicInfoList("groupID", ["topicID"]);

话题分组

社群模式(娱乐协作新利器),支持社群-分组-话题三级结构,将消息相互区隔。

实现原理为,社群的 customInfo 中,保存该社群的话题分组列表;每个话题所属的分组,存储于其 customString 字段中。
加载社群时,根据社群(群组)的 customInfo 的话题分组列表字段,展示分组。该字段建议用 string[] 形式存储。
具体每个分组中有什么话题 Topic,则要遍历 Topic 列表,通过 V2TimTopicInfocustomString 获得每个话题所属分组。
说明:
社群(群组)中 customInfo 的话题分组列表字段名,key 值,可由您自行定义。 以下示例代码中,将其命名为 categoryList

获取社群的分组列表

调用 getCommunityCategoryList(String groupID) 方法,示例代码如下:
const getCommunityCategoryList = async (groupID) => {
const customInfo = await getCommunityCustomInfo(groupID);
if (customInfo != null) {
const categoryListString = customInfo["categoryList"];
if (categoryListString != null && categoryListString !== "") {
return JSON.parse(categoryListString);
}
}
};

const getCommunityCustomInfo = async (groupID) => {
const groupIDList = [groupID];
const res = await TencentImSDKPlugin.v2TIMManager
.getGroupManager()
.getGroupsInfo(groupIDList);
if (res.code != 0) {
const groupInfo = res.data[0];
if (groupInfo != null) {
const customInfo = groupInfo.groupInfo?.customInfo;
return customInfo;
}
}
return null;
};

配置社群的分组列表

此处直接修改群组 groupInfocustomInfo 即可。此处为一个 Map,key 值您定义的话题分组列表字段名。
getCommunityCustomInfo 方法已在上一段实现,示例代码如下:
const setCommunityCategoryList = async (
groupID,
groupType,
newCategoryList
) => {
const customInfo = await getCommunityCustomInfo(groupID);
customInfo["categoryList"] = JSON.parse(newCategoryList);
TencentImSDKPlugin.v2TIMManager.getGroupManager().setGroupInfo({
customInfo: customInfo,
groupID: groupID,
groupType: groupType,
// ...其他资料
});
};

为话题添加分组

示例代码如下:
const addCategoryForTopic = (groupID, categoryName) => {
TencentImSDKPlugin.v2TIMManager.getGroupManager().setTopicInfo({
customString: categoryName,
});
};

获取话题所在分组

直接从 获取话题列表 中,取出 customString 即可。

监听话题回调

V2TIMGroupListener (Details) 中增加了话题相关的回调方法,onTopicCreatedonTopicDeletedonTopicInfoChanged,用来监听话题事件。
示例代码如下:
const v2TIMGroupListener = {
onTopicCreated: (groupID, topicID) => {
// 监听话题创建通知
},
onTopicDeleted: (groupID, topicIDList) => {
// 监听话题删除通知
},
onTopicInfoChanged: (groupID, topicInfo) => {
// 监听话题信息更新通知
},
};
V2TIMManager.getInstance().addGroupListener(v2TIMGroupListener);

话题消息

话题消息相关功能跟普通消息使用方法一样,涉及的接口有:
功能
接口
说明
发送消息
sendMessage (TS)
参数 groupID 填为话题 topicID
接收消息
V2TIMAdvancedMsgListener (TS) 中的 onRecvNewMessage 方法
消息中的 groupID 即为话题 topicID
标记消息已读
markGroupMessageAsRead (TS
参数 groupID 填为话题 topicID
获取历史消息
getGroupHistoryMessageList (TS
参数 groupID 填为话题 topicID
撤回消息
revokeMessage (TS
参数 groupID 填为话题 topicID