Group overview
Understand group profiles, group members, join applications, and group events in the OpenIM React Native SDK.
Multi-party messaging in OpenIM is anchored on groups. Group-related APIs use groupID to identify the group entity—such as querying group profiles, managing members, and reviewing join applications. Group conversations use conversationID to manage conversation settings, message history, and unread counters. Keep groupID (the group entity) and conversationID (the chat session) distinct in your code.
Core data structures
| Structure | Description |
|---|---|
GroupItem | Group name, avatar, announcement, owner, join verification policy, member count, and custom extensions. |
GroupMemberItem | A member's group-scoped nickname, role level, muting duration, and join metadata within a specific group. |
Group member roles are enumerated in GroupMemberRole: Normal for standard members, Admin for administrators, and Owner for the group creator/owner.
GroupItem properties
| Field | Type | Description |
|---|---|---|
groupID | string | Group ID and unique reconciliation key for group profiles. |
groupName | string | Group title. |
notification | string | Group announcement text. |
friendUserIDs | string | Friend user IDs associated with this group. |
remark | string | Group remark alias set by the current account. |
GroupMemberItem properties
| Field | Type | Description |
|---|---|---|
groupID | string | Target group ID to which this member belongs. |
userID | string | Member user ID. |
nickname | string | Member's display name inside this specific group. |
faceURL | string | Member's avatar image URL inside this specific group. |
roleLevel | GroupMemberRole | Member role: Normal, Admin, or Owner. |
muteEndTime | number | Timestamp in Unix seconds when the member mute expires. |
joinTime | number | Join timestamp in Unix seconds. |
joinSource | GroupJoinSource | Method or invitation through which the member joined. |
inviterUserID | string | User ID of the member who extended the invitation. |
operatorUserID | string | User ID of the administrator who last modified this member. |
ex | string | Member-specific extension string. |
Note that nickname, faceURL, and roleLevel are strictly scoped to the specified group and do not alter the user's global profile.
Browse by task
| Task | Guide |
|---|---|
| Create & update group profiles | Create a group, Update group profile, Set group announcement, Set group extension |
| Manage permissions & verification | Set group join verification, Set member profile access, Set group member friend permission |
| Join, leave, or dismiss groups | Join a group, Quit a group, Dismiss a group |
| Query groups | Get specified groups info, Get joined group list by page, Search groups |
| Review group applications | Get received group applications, Get sent group applications |
| Query & manage members | Get group member list by page, Invite users to group, Kick group member, Set member role level, Transfer group ownership |
| Manage muting | Mute entire group, Mute a group member |
Listen for group changes
Group membership additions, removals, profile modifications, and dissolutions trigger OnJoinedGroupAdded, OnJoinedGroupDeleted, OnGroupInfoChanged, and OnGroupDismissed:
const handleJoinedGroupAdded = (group: GroupItem) => {
// Add group to joined groups list
};
const handleJoinedGroupDeleted = (group: GroupItem) => {
// Remove group matching group.groupID
};
const handleGroupInfoChanged = (group: GroupItem) => {
// Update group properties matching group.groupID
};
const handleGroupDismissed = (group: GroupItem) => {
// Remove or disable dismissed group matching group.groupID
};
// Register listeners
OpenIMSDK.on(OpenIMEvent.OnJoinedGroupAdded, handleJoinedGroupAdded);
OpenIMSDK.on(OpenIMEvent.OnJoinedGroupDeleted, handleJoinedGroupDeleted);
OpenIMSDK.on(OpenIMEvent.OnGroupInfoChanged, handleGroupInfoChanged);
OpenIMSDK.on(OpenIMEvent.OnGroupDismissed, handleGroupDismissed);
// Remove listeners
OpenIMSDK.off(OpenIMEvent.OnJoinedGroupAdded, handleJoinedGroupAdded);
OpenIMSDK.off(OpenIMEvent.OnJoinedGroupDeleted, handleJoinedGroupDeleted);
OpenIMSDK.off(OpenIMEvent.OnGroupInfoChanged, handleGroupInfoChanged);
OpenIMSDK.off(OpenIMEvent.OnGroupDismissed, handleGroupDismissed);Unregister these listeners when the group view unmounts, the user signs out, or accounts switch. Member updates are covered in Get group member list by page, and application events in Get received group applications.
Was this page helpful?