Browse SDKs · React Native
SDKsReact Native

Group overview

OpenIM React Native SDK guide for group overview.

Copy

In OpenIM, group chats are organized as groups. In group APIs, use groupID to identify the target group, for example when querying group profiles, managing members, or handling group applications. After you create a group, obtain its groupID from the returned group information. A group chat session uses conversationID for conversation settings, message history, and unread status. conversationID identifies a conversation, whereas groupID identifies a group; do not confuse them when supplying API parameters.

Core data types

TypePurpose
GroupItemA group's name, avatar, announcement, owner, join-verification setting, member count, and extension data.
GroupMemberItemA user's nickname, role, mute state, and join information in a specific group.

Member roles use GroupMemberRole: Normal is a regular member, Admin is an administrator, and Owner is the group owner.

Common GroupItem fields

FieldTypeDescription
groupIDstringGroup ID.
groupNamestringGroup name.
notificationstringGroup announcement.
friendUserIDsstringGroup friend user ID information.
remarkstringGroup remark set by the current account.

Common GroupMemberItem fields

FieldTypeDescription
groupIDstringID of the group that the member belongs to.
userIDstringMember user ID.
nicknamestringThe user's nickname in the current group.
faceURLstringThe user's avatar URL in the current group.
roleLevelGroupMemberRoleMember role.
muteEndTimenumberTime when the mute ends.
joinTimenumberTime when the member joined the group.
joinSourceGroupJoinSourceHow the member joined the group.
inviterUserIDstringUser ID of the member who invited this user.
operatorUserIDstringUser ID of the user who last updated this member profile.
exstringGroup member extension string.

nickname, faceURL, and roleLevel belong to the member profile in the current group. They can differ for the same user in another group.

Find a page by task

Listen for group changes

When the current account joins or leaves a group, when group profile information changes, or when a group is dismissed, OnJoinedGroupAdded, OnJoinedGroupDeleted, OnGroupInfoChanged, and OnGroupDismissed are triggered respectively. Each callback receives a GroupItem directly:

const handleJoinedGroupAdded = (group: GroupItem) => {
  // Add group to the joined group list
};

const handleJoinedGroupDeleted = (group: GroupItem) => {
  // Remove the group from the joined group list by group.groupID
};

const handleGroupInfoChanged = (group: GroupItem) => {
  // Update the group profile by group.groupID
};

const handleGroupDismissed = (group: GroupItem) => {
  // Close or remove the dismissed group by group.groupID
};

OpenIMSDK.on(OpenIMEvent.OnJoinedGroupAdded, handleJoinedGroupAdded);
OpenIMSDK.on(OpenIMEvent.OnJoinedGroupDeleted, handleJoinedGroupDeleted);
OpenIMSDK.on(OpenIMEvent.OnGroupInfoChanged, handleGroupInfoChanged);
OpenIMSDK.on(OpenIMEvent.OnGroupDismissed, handleGroupDismissed);

OpenIMSDK.off(OpenIMEvent.OnJoinedGroupAdded, handleJoinedGroupAdded);
OpenIMSDK.off(OpenIMEvent.OnJoinedGroupDeleted, handleJoinedGroupDeleted);
OpenIMSDK.off(OpenIMEvent.OnGroupInfoChanged, handleGroupInfoChanged);
OpenIMSDK.off(OpenIMEvent.OnGroupDismissed, handleGroupDismissed);

Remove these listeners when signing out, switching accounts, or discarding group-related state. For member-change listeners, see Get group members. For group application change listeners, see Get received group applications.