let onGroupListUpdated = function(event) {console.log(event.data);// Array that stores Group instances};chat.on(TencentCloudChat.EVENT.GROUP_LIST_UPDATED, onGroupListUpdated);
TencentCloudChat.TYPES.GRP_AVCHATROOM
(an audio-video group), the joinGroup
API needs to be called to join the group to enable the messaging process.chat.createGroup(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
name | String | Group name, which can contain up to 30 bytes. |
type | String | Group type. Valid values: TencentCloudChat.TYPES.GRP_WORK (work group, which is the default value)TencentCloudChat.TYPES.GRP_PUBLIC (public group)TencentCloudChat.TYPES.GRP_MEETING (meeting group)TencentCloudChat.TYPES.GRP_AVCHATROOM (audio-video group)TencentCloudChat.TYPES.GRP_COMMUNITY (community) |
groupID | String | undefined | Group ID. If it is not specified, a unique ID will be automatically created for the group. |
introduction | String | undefined | Group introduction, which can contain up to 240 bytes. |
notification | String | undefined | Group notice, which can contain up to 300 bytes. |
avatar | String | undefined | Group profile photo URL, which can contain up to 100 bytes. |
maxMemberNum | Number | undefined | Maximum number of group members. Default value: 200 for a work group 2,000 for a public group 10,000 for a meeting group unlimited for an audio-video group |
joinOption | String | Method to join a group. Valid values: TencentCloudChat.TYPES.JOIN_OPTIONS_FREE_ACCESS TencentCloudChat.TYPES.JOIN_OPTIONS_NEED_PERMISSION (approval required) TencentCloudChat.TYPES.JOIN_OPTIONS_DISABLE_APPLY (no group join allowed) Note: It cannot be modified for TencentCloudChat.TYPES.GRP_WORK , TencentCloudChat.TYPES.GRP_MEETING , and TencentCloudChat.TYPES.GRP_AVCHATROOM groups. Work groups cannot be joined on request, and meeting groups and audio-video groups can be joined freely. |
memberList | Array | undefined | List of up to 500 existing group members. No group members can be added when an audio-video group is created. The array elements are as structured below: userID --- String --- userID of the group member, which is requiredrole --- String --- member role, which can only be Admin , indicating to add and set the group member as the adminmemberCustomField --- Array |
groupCustomField | Array | undefined | Custom group field, which is unavailable by default. For more information on how to enable a custom group field, see Group System. |
isSupportTopic | Boolean | It is required for creating a topic-enabled community. Valid values: true : create a topic-enabled community; false : create an ordinary community. |
inviteOption | String | undefined | Group inviting option: TencentCloudChat.TYPES.INVITE_OPTIONS_FREE_ACCESS: allow free group inviting TencentCloudChat.TYPES.INVITE_OPTIONS_NEED_PERMISSION: require approval for group inviting TencentCloudChat.TYPES.INVITE_OPTIONS_DISABLE_INVITE: forbid group inviting |
Promise
// Create a work grouplet promise = chat.createGroup({type: TencentCloudChat.TYPES.GRP_WORK,name: 'WebSDK',memberList: [{userID: 'user1',// Group member custom field.// By default, this parameter is not available and needs to be enabled.// For details, see Custom Fields.memberCustomField: [{key: 'group_member_test', value: 'test'}]}, {userID: 'user2'}] // If `memberList` is specified, `userID` must also be specified.});promise.then(function(imResponse) { // Created successfullyconsole.log(imResponse.data.group); // Profile of the created group// A member list is specified during group creation// but a certain user has exceeded the limit on the number of groups a single user can join.// If you specify userX, who has joined N groups (maximum number of groups userX can join)// as a member of the group during group creation, userX cannot join the group properly.// The SDK places the information of userX in overLimitUserIDList for the access side to process.// List of users who have exceeded the limit on the number of groups a single user can join.console.log(imResponse.data.overLimitUserIDList);}).catch(function(imError){console.warn('createGroup error:', imError); // Failed to create the group});
// Create a topic-enabled communitylet promise = chat.createGroup({type: TencentCloudChat.TYPES.GRP_COMMUNITY,name: 'WebSDK',isSupportTopic: true,});promise.then(function(imResponse) { // Created successfullyconsole.log(imResponse.data.group); // Profile of the created group}).catch(function(imError){console.warn('createGroup error:', imError); // Failed to create the group});
// Create a group with inviteOptionlet promise = chat.createGroup({type: TencentCloudChat.TYPES.GRP_PUBLIC,name: 'WebSDK',inviteOption: TencentCloudChat.TYPES.INVITE_OPTIONS_NEED_PERMISSION,});promise.then(function(imResponse) {console.log(imResponse.data.group);}).catch(function(imError) {console.warn('createGroup error:', imError);});
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 |
addGroupMember
.chat.joinGroup(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
groupID | String | Group ID |
applyMessage | String | undefined | Remarks |
Promise
let promise = chat.joinGroup({ groupID: 'group1' });promise.then(function(imResponse) {switch (imResponse.data.status) {case TencentCloudChat.TYPES.JOIN_STATUS_WAIT_APPROVAL: // Waiting to be approved by the adminbreak;case TencentCloudChat.TYPES.JOIN_STATUS_SUCCESS: // Joined the group successfullyconsole.log(imResponse.data.group); // Profile of the groupbreak;case TencentCloudChat.TYPES.JOIN_STATUS_ALREADY_IN_GROUP: // The user is already in the group.break;default:break;}}).catch(function(imError){console.warn('joinGroup error:', imError); // Failed to join the group});
chat.getGroupList();
Promise
let promise = chat.getGroupList();promise.then(function(imResponse) {console.log(imResponse.data.groupList); // Group list}).catch(function(imError){console.warn('getGroupList error:', imError); // Failed to obtain the group list});
chat.quitGroup(groupID);
Name | Type | Description |
groupID | String | Group ID |
Promise
let promise = chat.quitGroup('group1');promise.then(function(imResponse) {console.log(imResponse.data.groupID); // ID of the group that the user leaves}).catch(function(imError){console.warn('quitGroup error:', imError); // Failed to leave the group});
chat.dismissGroup(groupID);
Name | Type | Description |
groupID | String | Group ID |
Promise
let promise = chat.dismissGroup('group1');promise.then(function(imResponse) { // Disbanded successfullyconsole.log(imResponse.data.groupID); // ID of the disbanded group}).catch(function(imError){console.warn('dismissGroup error:', imError); // Failed to disband the group});
TencentCloudChat.TYPES.GRP_AVCHATROOM
) cannot be transferred.chat.changeGroupOwner(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
groupID | String | ID of the group to be transferred |
newOwnerID | String | ID of the new group owner |
Promise
let promise = chat.changeGroupOwner({groupID: 'group1',newOwnerID: 'user2'});promise.then(function(imResponse) { // Transferred successfullyconsole.log(imResponse.data.group); // Group profile}).catch(function(imError) { // Failed to transfer the groupconsole.warn('changeGroupOwner error:', imError); // Failed to transfer the group});
chat.handleGroupApplication(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
handleAction | String | Processing result. Valid values: Agree , Reject . |
handleMessage | String | undefined | Remarks |
message | Message | Message instance of the group system notification |
application | Object | undefined | group application |
Promise
let promise = chat.handleGroupApplication({handleAction: 'Agree',handleMessage: 'Welcome',// The message instance of the group system notification for an application to join a group.message: message});promise.then(function(imResponse) {console.log(imResponse.data.group); // Group profile}).catch(function(imError){console.warn('handleGroupApplication error:', imError); // Error message});
let promise = chat.getGroupApplicationList();promise.then(function(imResponse) {const { applicationList } = imResponse.data;applicationList.forEach((item) => {if (item.applicationType === 0) {chat.handleGroupApplication({handleAction: 'Agree',application: {...item},});}});}).catch(function(imError) {console.warn('getGroupApplicationList error:', imError);});
let promise = chat.getGroupApplicationList();promise.then(function(imResponse) {const { applicationList } = imResponse.data;applicationList.forEach((item) => {if (item.applicationType === 2) {chat.handleGroupApplication({handleAction: 'Agree',application: {...item},});}});}).catch(function(imError) {console.warn('getGroupApplicationList error:', imError);});
Was this page helpful?