IMSDK
IM features a comprehensive suite of solutions including global access, one-to-one chat, group chat, message push, profile and relationship chain hosting, and account authentication. It also provides complete app access and backend management APIs.
V2TIMManager(Group)

Instance Methods

(void) - createGroup:memberList:succ:fail:
 
(void) - getJoinedGroupList:fail:
 
(void) - getGroupsInfo:succ:fail:
 
(void) - searchGroups:succ:fail:
 
(void) - setGroupInfo:succ:fail:
 
(void) - initGroupAttributes:attributes:succ:fail:
 
(void) - setGroupAttributes:attributes:succ:fail:
 
(void) - deleteGroupAttributes:keys:succ:fail:
 
(void) - getGroupAttributes:keys:succ:fail:
 
(void) - getGroupOnlineMemberCount:succ:fail:
 
(void) - getGroupMemberList:filter:nextSeq:succ:fail:
 
(void) - getGroupMembersInfo:memberList:succ:fail:
 
(void) - searchGroupMembers:succ:fail:
 
(void) - setGroupMemberInfo:info:succ:fail:
 
(void) - muteGroupMember:member:muteTime:succ:fail:
 
(void) - inviteUserToGroup:userList:succ:fail:
 
(void) - kickGroupMember:memberList:reason:succ:fail:
 
(void) - setGroupMemberRole:member:newRole:succ:fail:
 
(void) - transferGroupOwner:member:succ:fail:
 
(void) - getGroupApplicationList:fail:
 
(void) - acceptGroupApplication:reason:succ:fail:
 
(void) - refuseGroupApplication:reason:succ:fail:
 
(void) - setGroupApplicationRead:fail:
 

Protected Types

enum  V2TIMGroupAddOpt : NSInteger
 
enum  V2TIMGroupMemberResult : NSInteger
 
enum  V2TIMGroupMemberFilter : NSInteger
 
enum  V2TIMGroupApplicationGetType : NSInteger
 
enum  V2TIMGroupApplicationHandleStatus : NSInteger
 
enum  V2TIMGroupApplicationHandleResult : NSInteger
 
typedef void(^ V2TIMGroupInfoListSucc) (NSArray< V2TIMGroupInfo * > *groupList)
 
typedef void(^ V2TIMGroupInfoResultListSucc) (NSArray< V2TIMGroupInfoResult * > *groupResultList)
 
typedef void(^ V2TIMGroupAttributeListSucc) (NSMutableDictionary< NSString *, NSString * > *groupAttributeList)
 
typedef void(^ V2TIMGroupMemberInfoListSucc) (NSArray< V2TIMGroupMemberFullInfo * > *memberList)
 
typedef void(^ V2TIMGroupMemberInfoResultSucc) (uint64_t nextSeq, NSArray< V2TIMGroupMemberFullInfo * > *memberList)
 
typedef void(^ V2TIMGroupMemberInfoListSearchSucc) (NSDictionary< NSString *, NSArray< V2TIMGroupMemberFullInfo * > * > *memberList)
 
typedef void(^ V2TIMGroupMemberOperationResultListSucc) (NSArray< V2TIMGroupMemberOperationResult * > *resultList)
 
typedef void(^ V2TIMGroupApplicationResultSucc) (V2TIMGroupApplicationResult *result)
 
typedef void(^ V2TIMGroupOnlineMemberCountSucc) (NSInteger count)
 

Member Typedef Documentation

◆ V2TIMGroupInfoListSucc

- (typedef void(^ V2TIMGroupInfoListSucc) (NSArray< V2TIMGroupInfo * > *groupList))
protected

Callback definition on get the list of groups that the current user has joined.

◆ V2TIMGroupInfoResultListSucc

- (typedef void(^ V2TIMGroupInfoResultListSucc) (NSArray< V2TIMGroupInfoResult * > *groupResultList))
protected

Callback definition on get specified group profiles.

◆ V2TIMGroupAttributeListSucc

- (typedef void(^ V2TIMGroupAttributeListSucc) (NSMutableDictionary< NSString *, NSString * > *groupAttributeList))
protected

Callback definition on get specified group attributes.

◆ V2TIMGroupMemberInfoListSucc

- (typedef void(^ V2TIMGroupMemberInfoListSucc) (NSArray< V2TIMGroupMemberFullInfo * > *memberList))
protected

Callback definition on get the group member list.

◆ V2TIMGroupMemberInfoResultSucc

- (typedef void(^ V2TIMGroupMemberInfoResultSucc) (uint64_t nextSeq, NSArray< V2TIMGroupMemberFullInfo * > *memberList))
protected

Callback definition on get the profiles of specified group members.

◆ V2TIMGroupMemberInfoListSearchSucc

- (typedef void(^ V2TIMGroupMemberInfoListSearchSucc) (NSDictionary< NSString *, NSArray< V2TIMGroupMemberFullInfo * > * > *memberList))
protected

Callback definition on search group members.

◆ V2TIMGroupMemberOperationResultListSucc

- (typedef void(^ V2TIMGroupMemberOperationResultListSucc) (NSArray< V2TIMGroupMemberOperationResult * > *resultList))
protected

Callback definition for operations related to group members.

◆ V2TIMGroupApplicationResultSucc

- (typedef void(^ V2TIMGroupApplicationResultSucc) (V2TIMGroupApplicationResult *result))
protected

Callback definition on get group joining request list.

◆ V2TIMGroupOnlineMemberCountSucc

- (typedef void(^ V2TIMGroupOnlineMemberCountSucc) (NSInteger count))
protected

Callback definition on get the number of online members of a group.

Member Enumeration Documentation

◆ V2TIMGroupAddOpt

- (enum V2TIMGroupAddOpt) :
protected

Enumeration definition of group joining approval type.

Enumerator
V2TIM_GROUP_ADD_FORBID 

Forbid anyone to join the group.

V2TIM_GROUP_ADD_AUTH 

Require admin approval.

V2TIM_GROUP_ADD_ANY 

Anyone can join.

◆ V2TIMGroupMemberResult

- (enum V2TIMGroupMemberResult) :
protected

Enumeration definition of operation result related to group members.

Enumerator
V2TIM_GROUP_MEMBER_RESULT_FAIL 

Operation failed.

V2TIM_GROUP_MEMBER_RESULT_SUCC 

Operation succeeded.

V2TIM_GROUP_MEMBER_RESULT_INVALID 

Invalid operation: already in the group when being added to the group, or not in the group when being removed from the group.

V2TIM_GROUP_MEMBER_RESULT_PENDING 

To be processed: waiting to be processed by the peer party when being invited to join a group.

V2TIM_GROUP_MEMBER_RESULT_OVERLIMIT 

Operation failed: when specifying the initial group member list or inviting a user to join the group during group creation, the total number of groups that the invitee joins exceeds the limit.

◆ V2TIMGroupMemberFilter

- (enum V2TIMGroupMemberFilter) :
protected

Enumeration definition of filter type for group members.

Enumerator
V2TIM_GROUP_MEMBER_FILTER_ALL 

All group members.

V2TIM_GROUP_MEMBER_FILTER_OWNER 

Group owner.

V2TIM_GROUP_MEMBER_FILTER_ADMIN 

Group admin.

V2TIM_GROUP_MEMBER_FILTER_COMMON 

Group member.

◆ V2TIMGroupApplicationGetType

- (enum V2TIMGroupApplicationGetType) :
protected

Enumeration definition of group request type.

Enumerator
V2TIM_GROUP_APPLICATION_GET_TYPE_JOIN 

Request to join a group.

V2TIM_GROUP_APPLICATION_GET_TYPE_INVITE 

Be invited to join a group.

◆ V2TIMGroupApplicationHandleStatus

- (enum V2TIMGroupApplicationHandleStatus) :
protected

Enumeration definition of processing status for group request.

Enumerator
V2TIM_GROUP_APPLICATION_HANDLE_STATUS_UNHANDLED 

Not handled.

V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_OTHER 

Handled by others.

V2TIM_GROUP_APPLICATION_HANDLE_STATUS_HANDLED_BY_SELF 

Handled by yourself.

◆ V2TIMGroupApplicationHandleResult

- (enum V2TIMGroupApplicationHandleResult) :
protected

Enumeration definition of process result for group request.

Enumerator
V2TIM_GROUP_APPLICATION_HANDLE_RESULT_REFUSE 

Reject a request.

V2TIM_GROUP_APPLICATION_HANDLE_RESULT_AGREE 

Accept a request.

Method Documentation

◆ createGroup:memberList:succ:fail:()

- (void) createGroup: (V2TIMGroupInfo *)  info
memberList: (NSArray< V2TIMCreateGroupMemberInfo * > *)  memberList
succ: (V2TIMCreateGroupSucc)  succ
fail: (V2TIMFail)  fail 

1.1 Create a custom group (the advanced version API allows you to specify initial group members)

Parameters
infoCustom group information, including the groupID, groupType, groupName, notification, introduction, and faceURL fields
memberListSpecify initial group members (Audio-video groups do not support specifying initial group members. Pass in null for memberList.)
Attention
For other limits, please see V2TIMManager.createGroup remarks.

◆ getJoinedGroupList:fail:()

- (void) getJoinedGroupList: (V2TIMGroupInfoListSucc succ
fail: (V2TIMFail)  fail 

1.2 Get the list of groups that the current user has joined

Attention
  • Audio-video groups (AVChatRoom) do not support this API.
  • This API implements frequency limit checks. It can be called by the SDK for up to 10 times per second. When the limit is exceeded, the error ERR_SDK_COMM_API_CALL_FREQUENCY_LIMIT (7008) is reported.

◆ getGroupsInfo:succ:fail:()

- (void) getGroupsInfo: (NSArray< NSString * > *)  groupIDList
succ: (V2TIMGroupInfoResultListSucc succ
fail: (V2TIMFail)  fail 

2.1 Pull group profiles

Parameters
groupIDListList of group IDs

◆ searchGroups:succ:fail:()

- (void) searchGroups: (V2TIMGroupSearchParam *)  searchParam
succ: (V2TIMGroupInfoListSucc succ
fail: (V2TIMFail)  fail 

2.2 Search for group profiles (supported only in 5.4.666 and later versions and need to buy Flagship Edition)

This API will search all the groups whose group name is included in the keyword list specifed in searchParam and return the group profiles list. The keyword list supports up to 5 keywords.

◆ setGroupInfo:succ:fail:()

- (void) setGroupInfo: (V2TIMGroupInfo *)  info
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

2.3 Modify group profiles

◆ initGroupAttributes:attributes:succ:fail:()

- (void) initGroupAttributes: (NSString *)  groupID
attributes: (NSDictionary< NSString *, NSString * > *)  attributes
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

2.4 Initialize group attributes (this operation will clear the existing group attribute list)

Attention
Use limits of attributes::
  • Currently, attributes are supported by audio-video groups (AVChatRoom) only.
  • Up to 16 keys are supported, with a length limit of 32 bytes.
  • The length limit for value is 4 KB.
  • The total length limit for attributes (including keys and values) is 16 KB.
  • The initGroupAttributes, setGroupAttributes, and deleteGroupAttributes APIs each can be called by the SDK for up to 10 times per 5 seconds, and the 8511 error code will be called back if the limit is exceeded. The APIs each can be called by the backend for up to 5 times per second, and the 10049 error code will be called back if the limit is exceeded.
  • The getGroupAttributes API can be called by the SDK for up to 20 times per 5 seconds.
  • Starting from version 5.6, when you modify group attributes for the first time after the app is started, please call getGroupAttributes to pull the latest group attributes before you initiate the modification operation.
  • Starting from version 5.6, when multiple users modify the same group attributes at the same time, only the first user can execute successfully, and other users will receive the 10056 error code. After receiving this error code, please call getGroupAttributes to update the locally stored group attributes to the latest before you initiate the modification operation.

◆ setGroupAttributes:attributes:succ:fail:()

- (void) setGroupAttributes: (NSString *)  groupID
attributes: (NSDictionary< NSString *, NSString * > *)  attributes
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

2.5 Set group attributes. (If the group attributes already exist, their values are updated. Otherwise, the group attributes are added.)

Attention
  • Currently, attributes are supported by audio-video groups (AVChatRoom) only.

◆ deleteGroupAttributes:keys:succ:fail:()

- (void) deleteGroupAttributes: (NSString *)  groupID
keys: (NSArray< NSString * > *)  keys
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

2.6 Delete specified group attributes (If null is passed in for keys, all group attributes are cleared.)

Attention
  • Currently, attributes are supported by audio-video groups (AVChatRoom) only.

◆ getGroupAttributes:keys:succ:fail:()

- (void) getGroupAttributes: (NSString *)  groupID
keys: (NSArray< NSString * > *)  keys
succ: (V2TIMGroupAttributeListSucc succ
fail: (V2TIMFail)  fail 

2.7 Get specified group attributes (If null is passed in for keys, all group attributes are obtained.)

Attention
  • Currently, attributes are supported by audio-video groups (AVChatRoom) only.

◆ getGroupOnlineMemberCount:succ:fail:()

- (void) getGroupOnlineMemberCount: (NSString *)  groupID
succ: (V2TIMGroupOnlineMemberCountSucc succ
fail: (V2TIMFail)  fail 

2.8 Get the number of online members of a group

Attention
Notes:
  • Currently, this API is supported only by audio-video groups (AVChatRoom).
  • This API implements frequency limit checks. It can be called by the SDK for up to once per 60 seconds.

◆ getGroupMemberList:filter:nextSeq:succ:fail:()

- (void) getGroupMemberList: (NSString *)  groupID
filter: (uint32_t)  filter
nextSeq: (uint64_t)  nextSeq
succ: (V2TIMGroupMemberInfoResultSucc succ
fail: (V2TIMFail)  fail 

3.1 Get the group member list

Parameters
filterSpecify the group member type(V2TIMGroupMemberFilter)
nextSeqPulling-by-page flag. It is set to 0 when the information is pulled for the first time. If the callback succeeds and nextSeq is not 0, pagination is needed. The value of this field is passed in for the next pull until the value becomes 0.
Attention
Special restrictions for audio-video groups (AVChatRoom):
  • The admin role cannot be pulled. The maximum number of group members supported is 31 (new members will be placed at the top of the list). After the app is restarted, please join the group again. Otherwise, the 10007 error code will be reported when you pull the group member list.
  • Only the following fields can be modified in group member profiles: userID, nickName, faceURL, and role.
  • The filter field does not support the admin role. If your business logic relies on the admin role, use the custom group field groupAttributes to manage the admin role.

◆ getGroupMembersInfo:memberList:succ:fail:()

- (void) getGroupMembersInfo: (NSString *)  groupID
memberList: (NSArray< NSString * > *)  memberList
succ: (V2TIMGroupMemberInfoListSucc succ
fail: (V2TIMFail)  fail 

3.2 Get the profiles of specified group members

◆ searchGroupMembers:succ:fail:()

- (void) searchGroupMembers: (V2TIMGroupMemberSearchParam *)  searchParam
succ: (V2TIMGroupMemberInfoListSearchSucc succ
fail: (V2TIMFail)  fail 

3.3 Search for group members (supported only in 5.4.666 and later versions and need to buy Flagship Edition)

Parameters
searchParamSearch parameters

◆ setGroupMemberInfo:info:succ:fail:()

- (void) setGroupMemberInfo: (NSString *)  groupID
info: (V2TIMGroupMemberFullInfo *)  info
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

3.4 Modify the profiles of specified group members

◆ muteGroupMember:member:muteTime:succ:fail:()

- (void) muteGroupMember: (NSString *)  groupID
member: (NSString *)  userID
muteTime: (uint32_t)  seconds
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

3.5 Mute (this API can be called by the admin or group owner)

◆ inviteUserToGroup:userList:succ:fail:()

- (void) inviteUserToGroup: (NSString *)  groupID
userList: (NSArray< NSString * > *)  userList
succ: (V2TIMGroupMemberOperationResultListSucc succ
fail: (V2TIMFail)  fail 

3.6 Invite users to a group

Attention
The limits for different types of groups are as follows:
  • Work group (Work): anyone in the group can invite others to the group.
  • Meeting group (Meeting) and public group (Public): only the app admin can invite others to the group via the RESTful API.
  • Audio-video group (AVChatRoom): inviting users to a group is not supported.

◆ kickGroupMember:memberList:reason:succ:fail:()

- (void) kickGroupMember: (NSString *)  groupID
memberList: (NSArray< NSString * > *)  memberList
reason: (NSString *)  reason
succ: (V2TIMGroupMemberOperationResultListSucc succ
fail: (V2TIMFail)  fail 

3.7 Remove a member from a group

Attention
The limits for different types of groups are as follows:
  • Work group (Work): only the group owner or app admin can remove a member from a group.
  • Meeting group (Meeting) and public group (Public): the group owner, group admin, and app admin can remove a member from a group.
  • Audio-video group (AVChatRoom): only muting (muteGroupMember) is supported. Removing a member from a group is not supported.

◆ setGroupMemberRole:member:newRole:succ:fail:()

- (void) setGroupMemberRole: (NSString *)  groupID
member: (NSString *)  userID
newRole: (uint32_t)  role
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

3.8 Set the role of a group member

Attention
The limits for different types of groups are as follows:
  • Meeting group (Meeting) and public group (Public): only the group owner can switch the role of a group member between common member and admin.
  • Other types of groups do not support group member role setting.
  • To transfer a group, please call the transferGroupOwner API.
  • For a meeting group (Meeting), after a group member role is set, there will be no onGrantAdministrator or onRevokeAdministrator callback.
  • Roles that can be set are common member (V2TIM_GROUP_MEMBER_ROLE_MEMBER) and admin (V2TIM_GROUP_MEMBER_ROLE_ADMIN).

◆ transferGroupOwner:member:succ:fail:()

- (void) transferGroupOwner: (NSString *)  groupID
member: (NSString *)  userID
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

3.9 Change the group owner

Attention
The limits for different types of groups are as follows:
  • Common groups (Work, Public, and Meeting): only the group owner has the permission to change the group owner.
  • Audio-video group (AVChatRoom): changing the group owner is not supported.

◆ getGroupApplicationList:fail:()

- (void) getGroupApplicationList: (V2TIMGroupApplicationResultSucc succ
fail: (V2TIMFail)  fail 

4.1 Get the group joining request list

◆ acceptGroupApplication:reason:succ:fail:()

- (void) acceptGroupApplication: (V2TIMGroupApplication *)  application
reason: (NSString *)  reason
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.2 Approve a group joining request

◆ refuseGroupApplication:reason:succ:fail:()

- (void) refuseGroupApplication: (V2TIMGroupApplication *)  application
reason: (NSString *)  reason
succ: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.3 Reject a group joining request

◆ setGroupApplicationRead:fail:()

- (void) setGroupApplicationRead: (V2TIMSucc)  succ
fail: (V2TIMFail)  fail 

4.4 Mark the group joining request list as read