腾讯云即时通信IMReact Native_AI解决方案_同尘科技
功能描述
社群是一个由于共同主题而让大家聚集在一起的超大群组,可以在社群下根据不同兴趣创建多个话题。
社群用来管理群成员。社群下的所有话题不仅可以共享社群成员,还可以独立收发消息而不相互干扰。社群和话题的管理接口在核心类 TencentImSDKPlugin.v2TIMManager.getGroupManager()
中。话题中的消息相关接口在核心类 TencentImSDKPlugin.v2TIMManager.getMessageManager()
中。说明 需 购买旗舰版套餐包 并在 控制台 > 功能配置 > 群组配置 > 群功能配置 > 社群 打开开关后方可使用。
社群管理
创建社群
创建支持话题的社群分两步:1. 创建 V2TIMGroupInfo
(点击查看详情) 对象,其中 groupType
设置为 Community
,isSupportTopic
设置为 true
/YES
。2. 调用 createGroup
(点击查看详情) 接口创建群组。示例代码如下:
// 创建只会社群的话题groupManager.createGroup(groupType: "Community", groupName: "社群",isSupportTopic: true);
获取加入的社群列表
调用 getJoinedCommunityList
(点击查看详情) 获取已经加入的支持话题的社群列表。示例代码如下:
// 获取加入的社群列表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
(点击查看详情) 对象。2. 调用 createTopicInCommunity
(点击查看详情) 接口创建话题。示例代码如下:
// 创建话题groupManager.createTopicInCommunity("groupID", { topicName: "topic",});
删除话题
调用 deleteTopicFromCommunity
(点击查看详情) 接口删除话题。示例代码如下:
// 删除话题groupManager.deleteTopicFromCommunity("groupID", ["topicID"]);
修改话题信息
修改话题信息分两步:1. 创建 V2TIMTopicInfo
(点击查看详情) 对象,并设置需要修改的字段2. 调用 setTopicInfo
(点击查看详情) 接口修改话题信息示例代码如下:
// 修改话题信息groupManager.setTopicInfo({ topicName: "topicName",});
获取话题列表
调用 getTopicInfoList
(点击查看详情) 接口获取话题列表。当 topicIDList 列表为空时,为获取该社群下的所有话题列表当 topicIDList 填入指定的话题 ID 时,为获取填入的话题列表示例代码如下:
// 获取话题列表groupManager.getTopicInfoList("groupID", ["topicID"]);
话题分组
社群模式(娱乐协作新利器),支持社群-分组-话题三级结构,将消息相互区隔。实现原理为,社群的 customInfo
中,保存该社群的话题分组列表;每个话题所属的分组,存储于其 customString
字段中。加载社群时,根据社群(群组)的 customInfo
的话题分组列表字段,展示分组。该字段建议用 string[]
形式存储。具体每个分组中有什么话题 Topic,则要遍历 Topic 列表,通过 V2TimTopicInfo
的 customString
获得每个话题所属分组。说明社群(群组)中 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;};
配置社群的分组列表
此处直接修改群组 groupInfo
的 customInfo
即可。此处为一个 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
(点击查看详情) 中增加了话题相关的回调方法,onTopicCreated
,onTopicDeleted
,onTopicInfoChanged
,用来监听话题事件。示例代码如下:
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 |
交流与反馈
点此进入IM社群,享有专业工程师的支持,解决您的难题
对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?