腾讯云即时通信IMUnity_AI解决方案_同尘科技
功能描述
群组管理功能指的是创建群组、加入群组、获取已加入的群组、退出群组和解散群组等。
群事件监听
下文描述的群组管理功能中,有些会触发群事件通知回调,例如有人进群、有人退群等,这些事件都是由 IM 服务器自动触发的。您可以调用 SetGroupTipsEventCallback
(点击查看详情) 添加群事件监听器。当不想再接收群事件时,可再次调用 SetGroupTipsEventCallback
(点击查看详情) 并传递 null
移除群事件监听器。注意 只有预先设置好群事件监听器,才能正常接收到下文中的各种群事件通知。示例代码如下:
TencentIMSDK.SetGroupTipsEventCallback((GroupTipsElem message, string user_data)=>{ // 处理回调逻辑});
创建群组
如果您想在创建群组的同时初始化群的信息,例如群简介、群头像、以及最初的几个群成员等,可以调用高级接口 GroupCreate
(点击查看详情) 实现。创建成功的回调中会抛出 create_group_result_groupid
。示例代码如下:
// 创建public群,并指定相关群属性CreateGroupParam param = new CreateGroupParam{ create_group_param_group_id = "group_id", create_group_param_group_name = "group_name", create_group_param_group_type = TIMGroupType.kTIMGroup_Public, create_group_param_add_option = TIMGroupAddOption.kTIMGroupAddOpt_Any,};
TIMResult res = TencentIMSDK.GroupCreate(param, (int code, string desc, CreateGroupResult result, string user_data)=>{ // 处理异步逻辑});
加入群组
不同类型的群组,加群的方法不同:
类型 | 加群方法 |
好友工作群(Work) | 必须由其他群成员邀请 |
陌生人社交群(Public) | 用户申请,群主或管理员审批 |
临时会议群(Meeting) | 用户可随意加入 |
社群(Community) | 用户可随意加入 |
直播群(AVChatRoom) | 用户可随意加入 |
下面将根据加群流程从简单到复杂进行逐一介绍。注意 接收以下群事件需要您提前调用 SetGroupTipsEventCallback
添加群事件监听器。
自由加群
临时会议群(Meeting)、直播群(AVChatRoom)和社群(Community)主要用于满足成员随意进出的交互场景,例如在线会议,秀场直播等。因此这几种类型群的入群流程最为简单:1. 加群者调用 GroupJoin
(点击查看详情) 加入群组。2. 加群者加群成功后,全体群成员(包括加群者本人)都会收到 GroupTipsEventCallback
(点击查看详情) 回调。示例代码如下:
// 监听加入群组事件TencentIMSDK.SetGroupTipsEventCallback((GroupTipsElem message, string user_data)=>{ // 处理回调逻辑});
// 加入群组TIMResult res = TencentIMSDK.GroupJoin(group_id, "greeting message", (int code, string desc, string user_data)=>{ // 处理异步逻辑});
邀请加群
好友工作群(Work)类似微信群和企业微信群,适用于工作交流,在交互设计上限制用户主动加入,只能由现有的群成员邀请才能加群。
加群步骤为:1. 现有的群成员调用 GroupInviteMember
(点击查看详情) 邀请另一个用户入群。2. 全体群成员(包括邀请者自己)都会收到 GroupTipsEventCallback
(点击查看详情) 回调。示例代码如下:
// 监听群组邀请事件TencentIMSDK.SetGroupTipsEventCallback((GroupTipsElem message, string user_data)=>{ // 处理回调逻辑});
// 邀请 userA 用户进入群组 groupA 中GroupInviteMemberParam param = new GroupInviteMemberParam{ group_invite_member_param_group_id = "group_id", group_invite_member_param_identifier_array = new List { "1234" } // 被邀请加入群组用户ID数组};TIMResult res = TencentIMSDK.GroupInviteMember(param, (int code, string desc, List result, string user_data)=>{ // 处理异步逻辑});
邀请且审批加群
陌生人社交群(Public)类似 QQ 中的各种兴趣群和部落群,任何人都可以申请入群,但需要经过群主或管理员审批才能真正入群。流程说明:1. 设置群组系统消息回调 SetGroupTipsEventCallback
(点击查看详情) 。2. 申请者调用 GroupJoin
(点击查看详情) 申请加群。3. 群主或管理员遍历加群申请列表,逐一调用 GroupHandlePendency
(点击查看详情) 同意/拒绝加群请求。4. 同意加群后,全员(包括请求者)收到 SetGroupTipsEventCallback
(点击查看详情) 回调,通知群组成员有人进群。群主或管理员也可以通过 GroupModifyGroupInfo
(点击查看详情) 接口调整加群选项(group_modify_info_param_add_option
),可以设置为更严格的 “禁止任何人加群”,也可以设置为更宽松的 “放开审批流程”。group_modify_info_param_add_option
的可选项有:
加群选项 | 含义 |
TIMGroupAddOption.kTIMGroupAddOpt_Forbid | 禁止任何人加群 |
TIMGroupAddOption.kTIMGroupAddOpt_Auth | 需要群主或管理员审批才能加入(默认值) |
TIMGroupAddOption.kTIMGroupAddOpt_Any | 取消审批流程,任何用户都可以加入 |
获取已加入的群组
您可以调用 GroupGetJoinedGroupList
(点击查看详情) 获取已加入的好友工作群(Work)、陌生人社交群(Public)、临时会议群(Meeting)、社群(Community,不支持话题功能)列表。但直播群(AVChatRoom)和 社群(Community,支持话题的社群)不包含在此列表中。代码示例如下:
// 获取已经加入的群组TIMResult res = TencentIMSDK.GroupGetJoinedGroupList((int code, string desc, List info_list, string user_data)=>{ // 处理异步逻辑});
退出群组
您可以调用 GroupQuit
(点击查看详情) 退出群组。
群组内其他成员会收到 SetGroupTipsEventCallback
(点击查看详情) 回调。注意 对于陌生人社交群(Public)、临时会议群(Meeting)、社群(Community)和直播群(AVChatRoom),群主不可以退群,只能解散群组。示例代码如下:
// 退出群组TIMResult res = TencentIMSDK.GroupQuit(group_id, (int code, string desc, string user_data)=>{ // 处理异步逻辑});
解散群组
您可以调用 GroupDelete
(点击查看详情) 解散群组,全员会收到 SetGroupTipsEventCallback
(点击查看详情) 回调。示例代码如下:
// 解散群组TIMResult res = TencentIMSDK.GroupDelete(group_id, (int code, string desc, string user_data)=>{ // 处理异步逻辑});
交流与反馈
如果您在接入使用过程中有任何疑问,请扫码加入微信群,或加入QQ群:764231117 咨询。
对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?