tencent cloud

Feedback

Last updated: 2023-07-17 16:42:05

    Feature Description

    Group member management includes pulling the member list, muting group members, removing group members, granting permissions, and transferring the group ownership.

    Getting the Group Member List

    Note
    1. this API supports pulling the muting stop timestamp (muteUntil). The receiver can determine whether a group member is muted and the remaining muting period based on the value. 
    2. This API is used to pull a paginated list of group members and not the complete list. To get the complete list of group members (memberCount), use getGroupMemberProfile.
    For audio-video groups (AVChatRoom):
    3. With the Premium edition, you can use this API to pull up to 1,000 latest group members, with new members ranked first. To use this feature, you need to purchase the Premium edition and enable the feature in the console.
    4. If this API is used on the Premium edition, the SDK will ignore the count parameter and return up to 500 group members per query by default.
    5. On the Premium edition, this API can be called up to one time per three seconds. To query the group member list periodically, you are advised to call the API once every ten seconds.
    6. This API supports only the following group member profile fields: userID, nick, avatar, and joinTime. If you need to set nick and avatar, call updateMyProfile.
    To enable this feature for the Premium edition, log in to the Chat console and modify the configuration as follows:
    
    
    
    API
    chat.getGroupMemberList(options);
    Parameters
    The options parameter is of the Object type. It contains the following attribute values:
    Name
    Type
    Description
    groupID
    String
    Group ID
    count
    Number
    Number of group members to be pulled. Default value: 15. Maximum value: 100. Too large a response packet will cause a request failure. If more than 100 group members are passed in, only the first 100 group members are pulled.
    offset
    Number
    Offset value. By default, the pull will start from 0.
    Return values
    Promise
    Sample
    // Pull 30 group members starting from 0
    let promise = chat.getGroupMemberList({ groupID: 'group1', count: 30, offset:0 });
    promise.then(function(imResponse) {
    console.log(imResponse.data.memberList); // Group member list
    }).catch(function(imError){
    console.warn('getGroupMemberList error:', imError);
    });
    // Pull 30 group members starting from 0
    promise.then(function(imResponse) {
    let promise = chat.getGroupMemberList({ groupID: 'group1', count: 30, offset:0 });
    console.log(imResponse.data.memberList); // Group member list
    for (let groupMember of imResponse.data.memberList) {
    if (groupMember.muteUntil * 1000 > Date.now()) {
    console.log(`${groupMember.userID} muted`);
    } else {
    console.log(`${groupMember.userID} not muted`);
    }
    }
    }).catch(function(imError){
    console.warn('getGroupMemberProfile error:', imError);
    });
    // the Premium edition supports getting the online member list of an audio-video group.
    let promise = chat.getGroupMemberList({ groupID: 'group1', offset:0 }); // Pull from 0 by default
    promise.then(function(imResponse) {
    console.log(imResponse.data.memberList); // Group member list
    }).catch(function(imError){
    console.warn('getGroupMemberList error:', imError);
    });

    Muting group members

    Muting a specified group member

    Note
    1. Only the group owner can mute/unmute the admin and ordinary group members. Only the admin can mute/unmute ordinary group members.
    2. The period for muting a community member in a topic can be set simply by passing in topicID for groupID.
    API
    chat.setGroupMemberMuteTime(options);
    Parameters
    The options parameter is of the Object type. It contains the following attribute values:
    Name
    Type
    Description
    groupID
    String
    Group ID or topic ID
    userID
    String
    The user ID.
    muteTime
    Number
    Muting duration, in seconds. For example, if the muting duration is set to 1000, the user is muted for 1,000 seconds immediately. If the muting duration is set to 0, the user is unmuted.
    Return values
    Promise
    Sample
    let promise = chat.setGroupMemberMuteTime({
    groupID: 'group1',
    userID: 'user1',
    muteTime: 600 // The user is muted for ten minutes. If the value is set to `0`, the user is unmuted.
    });
    promise.then(function(imResponse) {
    console.log(imResponse.data.group); // New group profile
    console.log(imResponse.data.member); // New group member profile
    }).catch(function(imError){
    console.warn('setGroupMemberMuteTime error:', imError); // Error information
    });
    // Set the period for muting a group member in the topic
    let promise = chat.setGroupMemberMuteTime({
    groupID: 'topicID',
    userID: 'user1',
    muteTime: 600 // The user is muted for ten minutes. If the value is set to `0`, the user is unmuted.
    });
    promise.then(function(imResponse) {
    console.log(imResponse.data.group); // New group profile
    console.log(imResponse.data.member); // New group member profile
    }).catch(function(imError){
    console.warn('setGroupMemberMuteTime error:', imError); // Error information
    });
    Muting the entire group
    let promise = chat.updateGroupProfile({
    groupID: 'group1',
    muteAllMembers: true, // `true`: mute all; `false`: unmute all
    });
    promise.then(function(imResponse) {
    console.log(imResponse.data.group) // Detailed group profile after modification
    }).catch(function(imError){
    console.warn('updateGroupProfile error:', imError); // Error information
    });

    Removing Group Members

    Note
    1. The Premium edition supports removing members from an audio-video group (AVChatRoom).
    2. The removal duration field (duration, in seconds) is supported only by audio-video groups (AVChatRoom).
    3. After a member is removed from an audio-video group, the app admin can use the RESTful API to unban the member so that the member can join the group again.
    API
    chat.deleteGroupMember(options);
    Parameters
    The options parameter is of the Object type. It contains the following attribute values:
    Name
    Type
    Description
    groupID
    String
    Group ID or topic ID
    userIDList
    Array
    List of IDs of the group members to be removed
    reason
    String | undefined
    Reason for removing a member
    duration
    Number
    Removal duration, which must be greater than 0 (This field is supported only by audio-video groups.)
    Return values
    Promise
    Sample
    // Remove a member from a group other than an audio-video group
    let promise = chat.deleteGroupMember({
    groupID: 'group1',
    userIDList:['user1'],
    reason: 'You are kicked out because you have violated the group rules.'
    });
    promise.then(function(imResponse) {
    console.log(imResponse.data.group); // Group profile after group member removal
    console.log(imResponse.data.userIDList); // List of userID of the removed group member
    }).catch(function(imError){
    console.warn('deleteGroupMember error:', imError); // Error information
    });
    // The Premium edition supports removing members from an audio-video group
    let promise = chat.deleteGroupMember({
    groupID: 'group1',
    userIDList:['user1'],
    reason: 'You are kicked out because you have violated the group rules.',
    duration: 60
    });
    promise.then(function(imResponse) {
    console.log(imResponse.data.group); // Group profile after group member removal
    console.log(imResponse.data.userIDList); // List of userID of the removed group member
    }).catch(function(imError){
    console.warn('deleteGroupMember error:', imError); // Error information
    });

    Changing the Role of a Group Member

    API
    chat.setGroupMemberRole(options);
    Parameters
    The options parameter is of the Object type. It contains the following attribute values:
    Name
    Type
    Description
    groupID
    String
    Group ID or topic ID
    userID
    String
    The user ID.
    role
    String
    Valid values:
    TencentCloudChat.TYPES.GRP_MBR_ROLE_ADMIN (group admin),
    TencentCloudChat.TYPES.GRP_MBR_ROLE_MEMBER (ordinary group member),
    TencentCloudChat.TYPES.GRP_MBR_ROLE_CUSTOM (custom group member role, which is supported only by the community)
    Return values
    Promise
    Sample
    let promise = chat.setGroupMemberRole({
    groupID: 'group1',
    userID: 'user1',
    role: TencentCloudChat.TYPES.GRP_MBR_ROLE_ADMIN // Set user1 as the admin of group1.
    });
    promise.then(function(imResponse) {
    console.log(imResponse.data.group); // New group profile
    console.log(imResponse.data.member); // New group member profile
    }).catch(function(imError){
    console.warn('setGroupMemberRole error:', imError); // Error information
    });

    Getting the Number of Online Group Members

    Note
    1. Currently, this API is supported only by audio-video groups (AVChatRoom).
    2. If this API is called to get the number of online members in a group other than an audio-video group (AVChatRoom), memberCount returned by the SDK is 0. We recommend you call this API only once every 5-10 seconds.
    API
    chat.getGroupOnlineMemberCount(groupID);
    Parameters
    Name
    Type
    Description
    groupID
    String
    Group ID
    Return values
    Promise
    Sample
    // Get the number of online users in an audio-video group
    let promise = chat.getGroupOnlineMemberCount('group1');
    promise.then(function(imResponse) {
    console.log(imResponse.data.memberCount);
    }).catch(function(imError){
    console.warn('getGroupOnlineMemberCount error:', imError); // Error information
    });
    
    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