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

  1. 默认创建群组时,IM 通讯云服务器会生成一个唯一的 ID,该 ID 将以 @TGS# 开头,且保证在 App 中唯一,以便后续操作。
  2. 如果用户需要自定义群组 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

  1. 私有群:任何人都无法解散群组
  2. 公开群、聊天室、直播大群:群主可以解散群组。

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

  1. 私有群:不能由用户主动申请入群。
  2. 公开群、聊天室:可以主动申请进入。
  3. 直播大群:可以任意加入群组。
  4. 如果群组设置为需要审核,申请入群后管理员和群主会收到申请入群系统消息 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)。
  5. 如果群主设置为任何人可加入,则直接入群成功。

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

  1. 私有群:全员可退出群组。
  2. 公开群、聊天室、直播大群:群主不能退出。
  3. 当用户主动退出群组时,该用户会收到退群消息 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

  1. 只有私有群可以邀请用户入群
  2. 公开群,聊天室不能邀请用户入群,但在创建群时可以直接拉人入群
  3. 音视频聊天室不能拉用户入群,也不能在创建群时拉人入群,只能用户主动进群

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

  1. 私有群:只有创建者可删除群组成员。
  2. 公开群、聊天室:只有管理员和群主可以踢人。
  3. 对于直播大群:不能踢人。

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

  1. 无论是公开群还是私有群,群成员均可以拉到群组信息。
  2. 如果是公开群,非群组成员可以拉到 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

  1. 无论是公开群还是私有群,群成员均可以拉到群组信息。
  2. 如果是公开群,非群组成员可以拉到 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

  1. 公开群、聊天室和直播大群:只有群主或者管理员可以修改群名。
  2. 私有群:任何人可修改群名。

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

  1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群简介。
  2. 私有群:任何人可修改群简介。

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

  1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群公告。
  2. 私有群:任何人可修改群公告。

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

  1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改群头像。
  2. 私有群:任何人可修改群头像。

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

  1. 公开群、聊天室、直播大群:只有群主或者管理员可以修改加群选项。
  2. 私有群:只能通过邀请加入群组,不能主动申请加入某个群组。

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

  1. 群主、管理员:有权限进行全员禁言的操作。
  2. 所有群组类型:都支持全员禁言的操作。

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

  1. 只有群主才有权限进行群转让操作。
  2. 直播大群不能进行群转让操作。

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

  1. 群主、管理员:可以进行对群成员的身份进行修改。
  2. 直播大群:不支持修改用户群内身份。

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

  1. 群未处理请求泛指所有需要审批的群相关的操作(例如:加群待审批,拉人入群待审批等等)。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已处理标志
  2. 审批人:有权限拉取相关信息,如果 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