Group overview
OpenIM React Native SDK guide for group overview.
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
| Type | Purpose |
|---|---|
GroupItem | A group's name, avatar, announcement, owner, join-verification setting, member count, and extension data. |
GroupMemberItem | A 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
| Field | Type | Description |
|---|---|---|
groupID | string | Group ID. |
groupName | string | Group name. |
notification | string | Group announcement. |
friendUserIDs | string | Group friend user ID information. |
remark | string | Group remark set by the current account. |
Common GroupMemberItem fields
| Field | Type | Description |
|---|---|---|
groupID | string | ID of the group that the member belongs to. |
userID | string | Member user ID. |
nickname | string | The user's nickname in the current group. |
faceURL | string | The user's avatar URL in the current group. |
roleLevel | GroupMemberRole | Member role. |
muteEndTime | number | Time when the mute ends. |
joinTime | number | Time when the member joined the group. |
joinSource | GroupJoinSource | How the member joined the group. |
inviterUserID | string | User ID of the member who invited this user. |
operatorUserID | string | User ID of the user who last updated this member profile. |
ex | string | Group 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
| Task | Pages |
|---|---|
| Create and maintain group profiles | Create a group, Update group profile, Publish a group announcement, Set group extra data |
| Configure join and member permissions | Set group join verification, Set member profile access, Set group member friend-request permissions |
| Join, leave, or dismiss groups | Apply to join a group, Leave a group, Dismiss a group |
| Retrieve groups | Get group information, Get joined groups by page, Search groups |
| Retrieve and handle group applications | Get received group applications, Get sent group applications |
| Retrieve and manage group members | Get group members, Invite users to a group, Remove group members, Manage group administrators, Transfer group ownership |
| Manage group chat messaging permissions | Change group mute status, Mute or unmute a group member |
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.
Was this page helpful?