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

群组管理

功能描述

群组管理功能指的是创建群组、加入群组、获取已加入的群组、退出群组和解散群组等。


群事件监听

下文描述的群组管理功能中,有些会触发群事件通知回调,例如有人进群、有人退群等,这些事件都是由 IM 服务器自动触发的。
您可以调用 SetGroupTipsEventCallback (Details) 添加群事件监听器。
当不想再接收群事件时,可再次调用 SetGroupTipsEventCallback (Details) 并传递 null 移除群事件监听器。
注意:
只有预先设置好群事件监听器,才能正常接收到下文中的各种群事件通知。
示例代码如下:
TencentIMSDK.SetGroupTipsEventCallback((GroupTipsElem message, string user_data)=>{
// 处理回调逻辑
});

创建群组

如果您想在创建群组的同时初始化群的信息,例如群简介、群头像、以及最初的几个群成员等,可以调用高级接口 GroupCreate (Details) 实现。创建成功的回调中会抛出 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 (Details) 加入群组。
2. 加群者加群成功后,全体群成员(包括加群者本人)都会收到 GroupTipsEventCallback (Details) 回调。
示例代码如下:
// 监听加入群组事件
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 (Details) 邀请另一个用户入群。
2. 全体群成员(包括邀请者自己)都会收到 GroupTipsEventCallback (Details) 回调。
示例代码如下:
// 监听群组邀请事件
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<string> {
"1234"
} // 被邀请加入群组用户ID数组
};
TIMResult res = TencentIMSDK.GroupInviteMember(param, (int code, string desc, List<GroupInviteMemberResult> result, string user_data)=>{
// 处理异步逻辑
});

邀请且审批加群

陌生人社交群(Public)类似 QQ 中的各种兴趣群和部落群,任何人都可以申请入群,但需要经过群主或管理员审批才能真正入群。
流程说明:
1. 设置群组系统消息回调 SetGroupTipsEventCallback (Details) 。
2. 申请者调用 GroupJoin (Details) 申请加群。
3. 群主或管理员遍历加群申请列表,逐一调用 GroupHandlePendency (Details) 同意/拒绝加群请求。
4. 同意加群后,全员(包括请求者)收到 SetGroupTipsEventCallback (Details) 回调,通知群组成员有人进群。
群主或管理员也可以通过 GroupModifyGroupInfo (Details) 接口调整加群选项(group_modify_info_param_add_option),可以设置为更严格的 “禁止任何人加群”,也可以设置为更宽松的 “放开审批流程”。
group_modify_info_param_add_option 的可选项有:
加群选项
含义
TIMGroupAddOption.kTIMGroupAddOpt_Forbid
禁止任何人加群
TIMGroupAddOption.kTIMGroupAddOpt_Auth
需要群主或管理员审批才能加入(默认值)
TIMGroupAddOption.kTIMGroupAddOpt_Any
取消审批流程,任何用户都可以加入

获取已加入的群组

您可以调用 GroupGetJoinedGroupList (Details) 获取已加入的好友工作群(Work)、陌生人社交群(Public)、临时会议群(Meeting)、社群(Community,不支持话题功能)列表。但直播群(AVChatRoom)和 社群(Community,支持话题的社群)不包含在此列表中。
代码示例如下:
// 获取已经加入的群组
TIMResult res = TencentIMSDK.GroupGetJoinedGroupList((int code, string desc, List<GroupBaseInfo> info_list, string user_data)=>{
// 处理异步逻辑
});


退出群组

您可以调用 GroupQuit (Details) 退出群组。 群组内其他成员会收到 SetGroupTipsEventCallback (Details) 回调。
注意:
对于陌生人社交群(Public)、临时会议群(Meeting)、社群(Community)和直播群(AVChatRoom),群主不可以退群,只能解散群组。
示例代码如下:
// 退出群组
TIMResult res = TencentIMSDK.GroupQuit(group_id, (int code, string desc, string user_data)=>{
// 处理异步逻辑
});


解散群组

您可以调用 GroupDelete (Details) 解散群组,全员会收到 SetGroupTipsEventCallback (Details) 回调。
示例代码如下:
// 解散群组
TIMResult res = TencentIMSDK.GroupDelete(group_id, (int code, string desc, string user_data)=>{
// 处理异步逻辑
});