TIMGroupManager Class Reference
Inherits from | NSObject |
---|---|
Declared in | TIMGroupManager.h |
获取群组实例
+ sharedInstance
1.1 获取群管理器实例
+ (TIMGroupManager *)sharedInstance
Return Value
管理器实例
Declared In
TIMGroupManager.h
创建/删除/加入/退出群组
– createPrivateGroup:groupName:succ:fail:
1.1 创建私有群
- (int)createPrivateGroup:(NSArray<NSString*> *)members groupName:(NSString *)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail
Parameters
members |
群成员,NSString* 数组 |
---|---|
groupName |
群名 |
succ |
成功回调 groupId |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
快速创建私有群,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 群组形态介绍
Declared In
TIMGroupManager.h
– createPublicGroup:groupName:succ:fail:
1.2 创建公开群
- (int)createPublicGroup:(NSArray<NSString*> *)members groupName:(NSString *)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail
Parameters
members |
群成员,NSString* 数组 |
---|---|
groupName |
群名 |
succ |
成功回调 groupId |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
快速创建公开群,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 群组形态介绍
Declared In
TIMGroupManager.h
– createChatRoomGroup:groupName:succ:fail:
1.3 创建聊天室
- (int)createChatRoomGroup:(NSArray<NSString*> *)members groupName:(NSString *)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail
Parameters
members |
群成员,NSString* 数组 |
---|---|
groupName |
群名 |
succ |
成功回调 groupId |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
快速创建聊天室,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 群组形态介绍
Declared In
TIMGroupManager.h
– createAVChatRoomGroup:succ:fail:
1.4 创建音视频聊天室
- (int)createAVChatRoomGroup:(NSString *)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail
Parameters
groupName |
群名 |
---|---|
succ |
成功回调 groupId |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
快速创建音视频聊天室,创建者默认加入群组,无需显式指定,群组类型形态请参考官网文档 群组形态介绍
Declared In
TIMGroupManager.h
– createGroup:groupId:groupName:succ:fail:
1.5 创建指定类型和 ID 的群组
- (int)createGroup:(NSString *)type groupId:(NSString *)groupId groupName:(NSString *)groupName succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail
Parameters
type |
群类型,Private,Public,ChatRoom,AVChatRoom |
---|---|
groupId |
自定义群组 ID,为空时系统自动分配 |
groupName |
群组名称 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 默认创建群组时,IM 通讯云服务器会生成一个唯一的 ID,该 ID 将以 @TGS# 开头,且保证在 App 中唯一,以便后续操作。
- 如果用户需要自定义群组 ID,在创建时可指定 ID,自定义群组 ID 必须为可打印 ASCII 字符(0x20-0x7e),最长 48 个字节,且前缀不能为 @TGS#(避免与默认分配的群组 ID 混淆)
Declared In
TIMGroupManager.h
– createGroup:succ:fail:
1.6 创建自定义群组
- (int)createGroup:(TIMCreateGroupInfo *)groupInfo succ:(TIMCreateGroupSucc)succ fail:(TIMFail)fail
Parameters
groupInfo |
群组信息,详情请参考 TIMComm+Group.h 里面的 TIMCreateGroupInfo 定义 |
---|---|
succ |
成功回调 groupId |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
在创建群组时,除了设置默认的成员以及群名外,还可以设置如群公告、群简介等字段。
Declared In
TIMGroupManager.h
– deleteGroup:succ:fail:
1.7 解散群组
- (int)deleteGroup:(NSString *)groupId succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 私有群:任何人都无法解散群组
- 公开群、聊天室、直播大群:群主可以解散群组。
Declared In
TIMGroupManager.h
– joinGroup:msg:succ:fail:
1.8 申请加群
- (int)joinGroup:(NSString *)groupId msg:(NSString *)msg succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
申请加入的群组Id |
---|---|
msg |
申请消息 |
succ |
成功回调(申请成功等待审批) |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 私有群:不能由用户主动申请入群。
- 公开群、聊天室:可以主动申请进入。
- 直播大群:可以任意加入群组。
- 如果群组设置为需要审核,申请入群后管理员和群主会收到申请入群系统消息 TIMGroupSystemElem,判断 TIMGroupSystemElem 的 Type 类型如果是 TIM_GROUP_SYSTEM_ADD_GROUP_REQUEST_TYPE ,调用消息的 accept 接口同意入群,申请人会收到同意入群的消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_ADD_GROUP_ACCEPT_TYPE),调用 refuse 接口拒绝入群,申请人会收到拒绝入群的消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_ADD_GROUP_REFUSE_TYPE)。
- 如果群主设置为任何人可加入,则直接入群成功。
Declared In
TIMGroupManager.h
– quitGroup:succ:fail:
1.9 主动退出群组
- (int)quitGroup:(NSString *)groupId succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 私有群:全员可退出群组。
- 公开群、聊天室、直播大群:群主不能退出。
- 当用户主动退出群组时,该用户会收到退群消息 TIMGroupSystemElem(Type:TIM_GROUP_SYSTEM_QUIT_GROUP_TYPE),只有退群的用户自己可以收到。当用户调用 QuitGroup 时成功回调返回,表示已退出成功,此消息主要为了多终端同步,其他终端可以作为更新群列表的时机,本终端可以选择忽略。
Declared In
TIMGroupManager.h
邀请/删除群成员
– inviteGroupMember:members:succ:fail:
3.1 邀请好友入群
- (int)inviteGroupMember:(NSString *)groupId members:(NSArray<NSString*> *)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
members |
要加入的成员列表(NSString* 类型数组) |
succ |
成功回调 (TIMGroupMemberResult 列表) |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 只有私有群可以邀请用户入群
- 公开群,聊天室不能邀请用户入群,但在创建群时可以直接拉人入群
- 音视频聊天室不能拉用户入群,也不能在创建群时拉人入群,只能用户主动进群
Declared In
TIMGroupManager.h
– deleteGroupMemberWithReason:reason:members:succ:fail:
3.2 删除群成员
- (int)deleteGroupMemberWithReason:(NSString *)groupId reason:(NSString *)reason members:(NSArray<NSString*> *)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
reason |
删除原因 |
members |
要删除的成员列表 |
succ |
成功回调 (TIMGroupMemberResult 列表) |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 私有群:只有创建者可删除群组成员。
- 公开群、聊天室:只有管理员和群主可以踢人。
- 对于直播大群:不能踢人。
Declared In
TIMGroupManager.h
获取群信息
– getGroupList:fail:
4.1 获取群列表
- (int)getGroupList:(TIMGroupListSucc)succ fail:(TIMFail)fail
Parameters
succ |
成功回调,NSArray 列表为 TIMGroupInfo,结构体只包含 group|groupName|groupType|faceUrl|allShutup|selfInfo 信息 |
---|---|
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
获取自己所加入的群列表。
Declared In
TIMGroupManager.h
– getGroupInfo:succ:fail:
4.2 获取服务器存储的群组信息
- (int)getGroupInfo:(NSArray *)groups succ:(TIMGroupListSucc)succ fail:(TIMFail)fail
Parameters
succ |
成功回调,NSArray 列表为 TIMGroupInfoResult,不包含 selfInfo 信息 |
---|---|
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 无论是公开群还是私有群,群成员均可以拉到群组信息。
- 如果是公开群,非群组成员可以拉到 group|groupName|owner|groupType|createTime|maxMemberNum|memberNum|introduction|faceURL|addOpt|onlineMemberNum|customInfo 这些字段信息。如果是私有群,非群组成员拉取不到群组信息。
Declared In
TIMGroupManager.h
– queryGroupInfo:
4.3 获取本地存储的群组信息
- (TIMGroupInfo *)queryGroupInfo:(NSString *)groupId
Parameters
groupId |
群组Id |
---|
Return Value
群组信息
Discussion
- 无论是公开群还是私有群,群成员均可以拉到群组信息。
- 如果是公开群,非群组成员可以拉到 group|groupName|owner|groupType|createTime|maxMemberNum|memberNum|introduction|faceURL|addOpt|onlineMemberNum|customInfo 这些字段信息。如果是私有群,非群组成员拉取不到群组信息。
Declared In
TIMGroupManager.h
– getGroupMembers:succ:fail:
4.4 获取群成员列表
- (int)getGroupMembers:(NSString *)groupId succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
succ |
成功回调 (TIMGroupMemberInfo 列表) |
fail |
失败回调 |
Return Value
0:成功;1:失败
Declared In
TIMGroupManager.h
– getGroupSelfInfo:succ:fail:
4.5 获取本人在群组内的成员信息
- (int)getGroupSelfInfo:(NSString *)groupId succ:(TIMGroupSelfSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
succ |
成功回调,返回信息 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Declared In
TIMGroupManager.h
– getGroupMembersInfo:members:succ:fail:
4.6 获取群组指定成员的信息
- (int)getGroupMembersInfo:(NSString *)groupId members:(NSArray<NSString*> *)members succ:(TIMGroupMemberSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
members |
成员Id(NSString*)列表 |
succ |
成功回调 (TIMGroupMemberInfo 列表) |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
获取群组指定成员的信息,需要设置群成员 members,其他限制参考 getGroupMembers
Declared In
TIMGroupManager.h
– getGroupMembers:ByFilter:flags:custom:nextSeq:succ:fail:
4.7 获取指定类型的成员列表(支持按字段拉取,分页)
- (int)getGroupMembers:(NSString *)groupId ByFilter:(TIMGroupMemberFilter)filter flags:(TIMGetGroupMemInfoFlag)flags custom:(NSArray<NSString*> *)custom nextSeq:(uint64_t)nextSeq succ:(TIMGroupMemberSuccV2)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
filter |
群成员角色过滤方式 |
flags |
拉取资料标志 |
custom |
要获取的自定义key(NSString*)列表 |
nextSeq |
分页拉取标志,第一次拉取填0,回调成功如果 nextSeq 不为零,需要分页,传入再次拉取,直至为0 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Declared In
TIMGroupManager.h
– getReciveMessageOpt:succ:fail:
4.8 获取接受消息选项
- (int)getReciveMessageOpt:(NSString *)groupId succ:(TIMGroupReciveMessageOptSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
succ |
成功回调, TIMGroupReceiveMessageOpt 0:接收消息;1:不接收消息,服务器不进行转发;2:接受消息,不进行 iOS APNs 推送 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Declared In
TIMGroupManager.h
修改群信息
– modifyGroupName:groupName:succ:fail:
5.1 修改群名
- (int)modifyGroupName:(NSString *)groupId groupName:(NSString *)groupName succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
groupName |
新群名 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 公开群、聊天室和直播大群:只有群主或者管理员可以修改群名。
- 私有群:任何人可修改群名。
Declared In
TIMGroupManager.h
– modifyGroupIntroduction:introduction:succ:fail:
5.2 修改群简介
- (int)modifyGroupIntroduction:(NSString *)groupId introduction:(NSString *)introduction succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
introduction |
群简介(最长120字节) |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 公开群、聊天室、直播大群:只有群主或者管理员可以修改群简介。
- 私有群:任何人可修改群简介。
Declared In
TIMGroupManager.h
– modifyGroupNotification:notification:succ:fail:
5.3 修改群公告
- (int)modifyGroupNotification:(NSString *)groupId notification:(NSString *)notification succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
notification |
群公告(最长150字节) |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 公开群、聊天室、直播大群:只有群主或者管理员可以修改群公告。
- 私有群:任何人可修改群公告。
Declared In
TIMGroupManager.h
– modifyGroupFaceUrl:url:succ:fail:
5.4 修改群头像
- (int)modifyGroupFaceUrl:(NSString *)groupId url:(NSString *)url succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
url |
群头像地址(最长100字节) |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 公开群、聊天室、直播大群:只有群主或者管理员可以修改群头像。
- 私有群:任何人可修改群头像。
Declared In
TIMGroupManager.h
– modifyGroupAddOpt:opt:succ:fail:
5.5 修改加群选项
- (int)modifyGroupAddOpt:(NSString *)groupId opt:(TIMGroupAddOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
opt |
加群选项,详见 TIMGroupAddOpt |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 公开群、聊天室、直播大群:只有群主或者管理员可以修改加群选项。
- 私有群:只能通过邀请加入群组,不能主动申请加入某个群组。
Declared In
TIMGroupManager.h
– modifyGroupSearchable:searchable:succ:fail:
5.6 修改群组是否可被搜索属性
- (int)modifyGroupSearchable:(NSString *)groupId searchable:(BOOL)searchable succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
searchable |
是否能被搜索 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Declared In
TIMGroupManager.h
– modifyGroupAllShutup:shutup:succ:fail:
5.7 修改群组全员禁言属性
- (int)modifyGroupAllShutup:(NSString *)groupId shutup:(BOOL)shutup succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
shutup |
是否禁言 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 群主、管理员:有权限进行全员禁言的操作。
- 所有群组类型:都支持全员禁言的操作。
Declared In
TIMGroupManager.h
– modifyGroupCustomInfo:customInfo:succ:fail:
5.8 修改群自定义字段集合
- (int)modifyGroupCustomInfo:(NSString *)groupId customInfo:(NSDictionary<NSString*,NSData*> *)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
customInfo |
自定义字段集合,key 是 NSString 类型,value 是 NSData 类型,value 长度不超过 512 字节 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
通过 IM 控制台 -> 功能配置 -> 群维度自定义字段 配置相关的 key 和权限。
Declared In
TIMGroupManager.h
– modifyGroupOwner:user:succ:fail:
5.9 转让群给新群主
- (int)modifyGroupOwner:(NSString *)groupId user:(NSString *)identifier succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
identifier |
新的群主Id |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 只有群主才有权限进行群转让操作。
- 直播大群不能进行群转让操作。
Declared In
TIMGroupManager.h
修改群成员信息
– modifyGroupMemberInfoSetNameCard:user:nameCard:succ:fail:
6.1 修改群成员名片
- (int)modifyGroupMemberInfoSetNameCard:(NSString *)groupId user:(NSString *)identifier nameCard:(NSString *)nameCard succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
identifier |
被操作用户identifier |
nameCard |
群名片 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
只有本人、管理员或群主能够调用
Declared In
TIMGroupManager.h
– modifyGroupMemberInfoSetRole:user:role:succ:fail:
6.2 修改群成员角色
- (int)modifyGroupMemberInfoSetRole:(NSString *)groupId user:(NSString *)identifier role:(TIMGroupMemberRole)role succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
identifier |
被修改角色的用户identifier |
role |
角色(注意:不能修改为群主),详见 TIMGroupMemberRole |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 群主、管理员:可以进行对群成员的身份进行修改。
- 直播大群:不支持修改用户群内身份。
Declared In
TIMGroupManager.h
– modifyGroupMemberVisible:visible:succ:fail:
6.3 修改群组成员是否可见属性
- (int)modifyGroupMemberVisible:(NSString *)groupId visible:(BOOL)visible succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
visible |
是否可见 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Declared In
TIMGroupManager.h
– modifyGroupMemberInfoSetSilence:user:stime:succ:fail:
6.4 禁言用户
- (int)modifyGroupMemberInfoSetSilence:(NSString *)groupId user:(NSString *)identifier stime:(uint32_t)stime succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
identifier |
被禁言的用户identifier |
stime |
禁言时间 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
只有管理员或群主能够调用
Declared In
TIMGroupManager.h
– modifyReceiveMessageOpt:opt:succ:fail:
6.5 修改个人接受消息选项
- (int)modifyReceiveMessageOpt:(NSString *)groupId opt:(TIMGroupReceiveMessageOpt)opt succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组Id |
---|---|
opt |
接受消息选项,详见 TIMGroupReceiveMessageOpt |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
默认情况下,公开群和私有群是接收并离线推送群消息,聊天室和直播大群是接收但不离线推送群消息。
Declared In
TIMGroupManager.h
– modifyGroupMemberInfoSetCustomInfo:user:customInfo:succ:fail:
6.6 修改群成员自定义字段集合
- (int)modifyGroupMemberInfoSetCustomInfo:(NSString *)groupId user:(NSString *)identifier customInfo:(NSDictionary<NSString*,NSData*> *)customInfo succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
groupId |
群组 Id |
---|---|
identifier |
被操作用户 identifier |
customInfo |
自定义字段集合,key 是 NSString 类型,value 是 NSData 类型,value 长度不超过 64 字节 |
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
通过 IM 控制台 -> 功能配置 -> 群成员维度自定义字段 配置相关的 key 和权限。
Declared In
TIMGroupManager.h
群未处理请求逻辑
– getPendencyFromServer:succ:fail:
7.1 获取群组未处理请求列表
- (int)getPendencyFromServer:(TIMGroupPendencyOption *)option succ:(TIMGetGroupPendencyListSucc)succ fail:(TIMFail)fail
Parameters
option |
拉取群未处理请求参数配置,详情请参考 TIMComm.h -> TIMGroupPendencyOption |
---|---|
succ |
成功回调,返回未决列表 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
- 群未处理请求泛指所有需要审批的群相关的操作(例如:加群待审批,拉人入群待审批等等)。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已处理标志
- 审批人:有权限拉取相关信息,如果 UserA 申请加入群 GroupA,则群管理员可获取此未处理相关信息,UserA 因为没有审批权限,不需要拉取未处理信息。如果 AdminA 拉 UserA 进去 GroupA,则 UserA 可以拉取此未处理相关信息,因为该未处理信息待 UserA 审批。
Declared In
TIMGroupManager.h
– pendencyReport:succ:fail:
7.2 群未处理列表已读上报
- (int)pendencyReport:(uint64_t)timestamp succ:(TIMSucc)succ fail:(TIMFail)fail
Parameters
timestamp |
上报已读时间戳 |
---|---|
succ |
成功回调 |
fail |
失败回调 |
Return Value
0:成功;1:失败
Discussion
对于未处理信息,SDK 可对其和之前的所有未处理请求上报已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。
Declared In
TIMGroupManager.h