chat.createGroup(options);
// 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); // Error information});
chat.getJoinedCommunityList();
Promise
// Get the list of topic-enabled communitieslet promise = chat.getJoinedCommunityList();promise.then(function(imResponse) { // Got successfullyconsole.log(imResponse.data.groupList); // List of topic-enabled communities}).catch(function(imError) { // Getting failedconsole.warn('getJoinedCommunityList error:', imError); // Failure message});
chat.createTopicInCommunity(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
groupID | String | Community ID of the topic |
topicName | String | Topic name |
topicID | String | A custom topic ID must be in the format of "community ID + custom topic ID", such as "@TGS#_xxx@TOPIC#_xxx". |
avatar | String | Topic profile photo |
notification | String | Topic notice |
introduction | String | Topic introduction |
customData | String | Custom topic information |
Promise
// Create a topiclet promise = chat.createTopicInCommunity({groupID: 'group1',topicName: 'test',avatar: 'xxx'notification: 'xxx',introduction: 'xxx',customData: 'xxxx',});promise.then(function(imResponse) { // Created successfullyconsole.log(imResponse.data.topicID); // Topic ID}).catch(function(imError) { // Creation failedconsole.warn('createTopicInCommunity error:', imError); // Failed to create the topic});
chat.deleteTopicFromCommunity(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
groupID | String | Community ID of the topic |
topicIDList | Array | undefined | List of topic IDs. If it is not passed in, all the topics are deleted. |
Promise
// Delete a specified topic under a communitylet promise = chat.deleteTopicFromCommunity({groupID: 'group1',topicIDList: ['topicID']});promise.then(function(imResponse) { // Deleted successfullyconst { successTopicList, failureTopicList } = imResponse.data;// List of topics deleted successfullysuccessTopicList.forEach((item) => {const { topicID } = item;});// List of topics failed to be deletedfailureTopicList.forEach((item) => {const { topicID, code, message } = item;})}).catch(function(imError) { // Deletion failedconsole.warn('deleteTopicFromCommunity error:', imError); // Failed to delete the topic});
// Delete all the topics under a communitylet promise = chat.deleteTopicFromCommunity({groupID: 'group1',});promise.then(function(imResponse) { // Deleted successfullyconst { successTopicList, failureTopicList } = imResponse.data;// List of topics deleted successfullysuccessTopicList.forEach((item) => {const { topicID } = item;});// List of topics failed to be deletedfailureTopicList.forEach((item) => {const { topicID, code, message } = item;})}).catch(function(imError) { // Deletion failedconsole.warn('deleteTopicFromCommunity error:', imError); // Failed to delete the topic});
chat.updateTopicProfile(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
groupID | String | Community ID of the topic |
topicID | String | Topic ID, which is required |
topicName | String | undefined | Topic name |
avatar | String | undefined | Topic profile photo |
notification | String | undefined | Topic notice |
introduction | String | undefined | Topic introduction |
customData | String | undefined | Custom topic information |
muteAllMembers | Boolean | undefined | Muting all. Valid values: true : mute all;false : unmute all. |
Promise
// Update the topic profilelet promise = chat.updateTopicProfile({groupID: 'group1',topicID: 'topic1',topicName: 'test',avatar: 'xxx'notification: 'xxx',introduction: 'xxx',customData: 'xxxx',muteAllMembers: true});promise.then(function(imResponse) { // Topic profile set successfullyconsole.log(imResponse.data.topic); // Modified topic profile}).catch(function(imError) { // Failed to set the topic profile// Information on the failure in setting the topic profileconsole.warn('updateTopicProfile error:', imError);});
chat.getTopicList(options);
options
parameter is of the Object
type. It contains the following attribute values:Name | Type | Description |
groupID | String | Community ID of the topic |
topicIDList | Array | undefined | List of topic IDs. If it is not passed in, all the topics are obtained. |
Promise
// Get a specified topiclet promise = chat.getTopicList({groupID: 'group1',topicIDList: ['topicID'],});promise.then(function(imResponse) { // Got successfullyconst { successTopicList, failureTopicList } = imResponse.data;// List of topics got successfullysuccessTopicList.forEach((item) => {const { topicID } = item;});// List of topics failed to be gotfailureTopicList.forEach((item) => {const { topicID, code, message } = item;})}).catch(function(imError) { // Getting failedconsole.warn('getTopicList error:', imError); // Information on the failure in getting the topic list});
// Get all the topicslet promise = chat.getTopicList({groupID: 'group1',});promise.then(function(imResponse) { // Got successfullyconst { successTopicList, failureTopicList } = imResponse.data;// List of topics got successfullysuccessTopicList.forEach((item) => {const { topicID } = item;});// List of topics failed to be gotfailureTopicList.forEach((item) => {const { topicID, code, message } = item;})}).catch(function(imError) { // Getting failedconsole.warn('getTopicList error:', imError); // Information on the failure in getting the topic list});
groupCustomField
field in the community profile defines a field to store the topic group list of the community. The customData field in the topic profile stores the group to which each topic belongs.groupCustomField
field for the topic group list in the community (group) profile is used to display the group list.customData
field in the topic profile is used to get the group name for assignment.key
value of the groupCustomField
field for the topic group list of the community (group).
The following sample code names it topic_category
.groupCustomField
field in the group profile. The key
value is the name of the field for the topic group list you defined.// Topic group listconst categoryList = ['Group 1', 'Group 2'];// Update the topic group list of the communitylet promise = chat.updateGroupProfile({groupID: 'group1',// You need to configure the custom group field `topic_category` in the console first.groupCustomField: [{ key: 'topic_category', value: JSON.stringify(categoryList) }]});promise.then(function(imResponse) {console.log(imResponse.data.group) // Detailed group profile after modification}).catch(function(imError){console.warn('updateGroupProfile error:', imError); // Error information});
let promise = chat.getGroupProfile({groupID: 'group1',groupCustomFieldFilter: ['topic_category']});promise.then(function(imResponse) {console.log(imResponse.data.group);const categoryList = []; // Topic group listconst { groupCustomField } = imResponse.data.group;groupCustomField.forEach((item) => {if (item.key === 'topic_category') {// Parse the group listcategoryList = JSON.parse(item.value);}});}).catch(function(imError){console.warn('getGroupProfile error:', imError); // Error information});
customData
field of the topic.// Define a group for the topicconst customData = { category: 'Group 1' };// Update the topic grouplet promise = chat.updateTopicProfile({groupID: 'group1', // Community IDtopicID: 'topic1', // Topic IDcustomData: JSON.stringify(customData),});promise.then(function(imResponse) { // Topic group updated successfullyconsole.log(imResponse.data.topic); // Modified topic profile}).catch(function(imError) { // Failed to update the topic groupconsole.warn('updateTopicProfile error:', imError);});
let onTopicCreated = function(event) {const groupID = event.data.groupID // ID of the community to which the topic belongsconst topicID = event.data.topicID // Topic IDconsole.log(event.data);};chat.on(TencentCloudChat.EVENT.TOPIC_CREATED, onTopicCreated);
let onTopicDeleted = function(event) {const groupID = event.data.groupID // ID of the community to which the topic belongsconst topicIDList = event.data.topicIDList // List of deleted topic IDsconsole.log(event.data);};chat.on(TencentCloudChat.EVENT.TOPIC_DELETED, onTopicDeleted);
let onTopicUpdated = function(event) {const groupID = event.data.groupID // ID of the community to which the topic belongsconst topic = event.data.topic // Topic profileconsole.log(event.data);};chat.on(TencentCloudChat.EVENT.TOPIC_UPDATED, onTopicUpdated);
Was this page helpful?