tencent cloud

Feedback

Last updated: 2024-02-06 17:46:02

    Feature Description

    The group management feature allows creating a group, joining a group, getting the joined groups, leaving a group, or disbanding a group through methods in the TencentImSDKPlugin.v2TIMManager.getGroupManager() core class.
    

    Group Event Listener

    In the group management feature as described below, the IM SDK will automatically trigger the group event notification callback, for example, when someone joins or leaves a group.
    Call addGroupListener (Details) to add a group event listener.
    To stop receiving group events, call removeGroupListener (Details) to remove the group event listener.
    Caution:
    You need to set the group event listener in advance to receive group event notifications.
    Sample code:
    TencentImSDKPlugin.v2TIMManager.setGroupListener(listener: V2TimGroupListener());

    Creating a Group

    To initialize the group information such as group introduction, group profile photo, and existing group members when creating a group, call the createGroup advanced API (Details), and the groupID will be returned in the callback for successful creation.
    Sample code:
    // Create a public group and specify group attributes
    groupManager.createGroup(
    groupType: "Publich",
    groupName: "groupName",
    notification: "",
    introduction: "",
    faceUrl: "",
    isAllMuted: false,
    isSupportTopic: false,
    addOpt: GroupAddOptTypeEnum.V2TIM_GROUP_ADD_AUTH,
    memberList: [],
    );
    

    Joining a Group

    The method for joining a group may vary by group type as follows:
    Type
    Method for Joining a Group
    Work group (Work)
    By invitation
    Public group (Public)
    On request from the user and on approval from the group owner or admin
    Meeting group (Meeting)
    Free to join
    Community (Community)
    Free to join
    Audio-video group (AVChatRoom)
    Free to join
    The following describes how to join the groups in an easy-to-hard sequence.
    Caution:
    You need to call addGroupListener to add a group event listener in advance as instructed in Group Event Listener to receive the following group events.

    Free to join a group

    Meeting groups (Meeting), audio-video groups (AVChatRoom), and communities are mainly used for free interaction scenarios, such as online meeting and live show. The process of joining such groups is the simplest:
    1. The user calls joinGroup (Details) to join the group.
    2. After the user has successfully joined the group, all the group members (including the user) will receive the onMemberEnter callback (Details).
    Sample code:
    // Join a group
    TencentImSDKPlugin.v2TIMManager.joinGroup(groupID: "groupID",message: "hello",groupType: "Public");
    
    // Listen for the group join event
    TencentImSDKPlugin.v2TIMManager.addGroupListener(listener: V2TimGroupListener(onMemberEnter: ((groupID, memberList) {
    // Get the information of the user who joined the group
    })));
    

    Joining a group by invitation

    Work groups (Work) are suitable for communication in work environments. The interaction pattern is designed to disable proactive group joining and only allow users to be invited to join the group by group members. The steps to join a group are as follows:
    1. A group member calls inviteUserToGroup (Details) to invite a user to the group.
    2. All the group members (including the inviter) receive the onMemberInvited callback (Details), which can contain some UI tips.
    Sample code:
    // Invite the `userA` user to join the `groupA` group
    groupManager.inviteUserToGroup(groupID: "groupID",userList:[]);
    
    // Listen for the group invitation event
    TencentImSDKPlugin.v2TIMManager.addGroupListener(listener: V2TimGroupListener(onMemberInvited: ((groupID, opUser, memberList) {
    // Get the information of the inviter and the invitee
    })));

    Joining a group on request and on approval

    A public group (Public) is similar to the interest group and clan group of QQ. Anyone can join it on request and on approval from the group owner or admin.
    The steps to join a group on request and on approval are as follows:
    
    Description of process:
    1. The user calls joinGroup (Details) to request to join the group.
    2. The group owner or admin receives the onReceiveJoinApplication group join request notification (Details) and calls getGroupApplicationList (Details) to get the group join request list.
    3. The group owner or admin traverses the group join request list and calls acceptGroupApplication (Details) to approve a request or refuseGroupApplication (Details) to reject it.
    4. After the request to join the group is approved or rejected, the user will receive the onApplicationProcessed callback (Details). Here, if isAgreeJoin is true, the request is approved; otherwise, it is rejected.
    5. On approval, all the group members (including the user) will receive the onMemberEnter callback (Details), notifying the group members that someone joined the group.
    Sample code:
    // ******Group owner******//
    // 1. The group owner changes the group join option to approval required.
    groupManager.setGroupInfo(info: V2TimGroupInfo.fromJson({
    "groupAddOpt":GroupAddOptTypeEnum.V2TIM_GROUP_ADD_AUTH
    }));
    
    // 2. The group owner listens for and processes requests to join the group.
    TencentImSDKPlugin.v2TIMManager.addGroupListener(listener: V2TimGroupListener(onReceiveJoinApplication: (groupID, member, opReason) async {
    // Get all the requests
    V2TimValueCallback<V2TimGroupApplicationResult> appls = await groupManager.getGroupApplicationList();
    appls.data.groupApplicationList.forEach((application) {
    // Approve
    groupManager.acceptGroupApplication(groupID: application.groupID, fromUser: application.fromUser, toUser: application.toUser,type: GroupApplicationTypeEnum.values[application.type]);
    // Reject
    groupManager.refuseGroupApplication(groupID: application.groupID, fromUser: application.fromUser, toUser: application.toUser, addTime: application.addTime, type: GroupApplicationTypeEnum.values[application.type]);
    });
    },));
    // ******User******//
    // 1. The user requests to join the group.
    TencentImSDKPlugin.v2TIMManager.joinGroup(groupID: "groupID",message: "hello",groupType: "Public");
    
    // 2. The user listens for the request review result.
    TencentImSDKPlugin.v2TIMManager.addGroupListener(listener: V2TimGroupListener(
    onApplicationProcessed: ((groupID, opUser, isAgreeJoin, opReason) {
    // The request to join the group is processed.
    }),
    onMemberEnter:(groupID,memberlist){
    // The user joins the group.
    }
    ));
    The group owner or admin can also call the setGroupInfo API (Details) to change the group join option (V2TIMGroupAddOpt) to "no group join" or "no approval required".
    V2TIMGroupAddOpt has the following options:
    Group Join Option
    Description
    GroupAddOptTypeEnum.V2TIM_GROUP_ADD_FORBID
    No users can join the group.
    GroupAddOptTypeEnum.V2TIM_GROUP_ADD_AUTH
    Approval from the group owner or admin is required to join the group (default value).
    GroupAddOptTypeEnum.V2TIM_GROUP_ADD_ANY
    Any user can join the group without approval.

    Getting the Joined Groups

    Call getJoinedGroupList (Details) to get the list of joined work groups (Work), public groups (Public), meeting groups (Meeting), and communities (Community, which don't support the topic feature). Audio-video groups (AVChatRoom) and communities (Community, which support the topic feature) are not included in this list.
    Sample code:
    // Get the joined groups
    V2TimValueCallback<List<V2TimGroupInfo>> groupRes =await groupManager.getJoinedGroupList();
    

    Leaving a Group

    Call quitGroup (Details) to leave a group. The member who left the group will receive the onQuitFromGroup callback (Details). Other group members will receive the onMemberLeave callback (Details).
    Caution:
    The group owner cannot leave a public group (Public), meeting group (Meeting), community, or audio-video group (AVChatRoom) and can only disband it.
    Sample code:
    // Leave a group
    TencentImSDKPlugin.v2TIMManager.quitGroup(groupID: "groupID");
    
    TencentImSDKPlugin.v2TIMManager.addGroupListener(listener: V2TimGroupListener(onMemberLeave: (groupID, member) {
    // Information of the member who left the group
    },));
    

    Disbanding a Group

    Call dismissGroup (Details) to disband a group, and all the group members will receive the onGroupDismissed callback (Details).
    If you have allowed automatically disbanding an inactive group on the server, when the group is automatically disbanded by the server, the SDK will receive the onGroupRecycled callback (Details).
    Sample code:
    // Disband a group
    TencentImSDKPlugin.v2TIMManager.dismissGroup(groupID: "groupID");
    // Listen for the event
    TencentImSDKPlugin.v2TIMManager.addGroupListener(listener: V2TimGroupListener(onGroupDismissed: (groupID, opUser) {
    // The group is disbanded.
    },onGroupRecycled: (groupID, opUser){
    // The group is reclaimed.
    }));

    Receiving a Custom Group System Notification

    If you call the RESTful API on the server to send a custom system messages to the group, the SDK will call back onReceiveRESTCustomData.
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support