A community is a large group of people brought together by common topics, and multiple topics can be created under the same community based on different interests. A community is used to manage members. All its topics are shared among members, who can send and receive messages independently.
Community Group Management
Creating a community group
API
chat.createGroup(options);
Sample
// Create a topic-enabled community
let promise = chat.createGroup({
type: TencentCloudChat.TYPES.GRP_COMMUNITY,
name:'WebSDK',
isSupportTopic:true,
});
promise.then(function(imResponse){// Created successfully
console.log(imResponse.data.group);// Profile of the created group
}).catch(function(imError){
console.warn('createGroup error:', imError);// Error information
});
Getting the list of topic-enabled communities
Caution
This API is supported only by topic-enabled communities. You need to Purchase Premium Version, log in to the Chat Console and enable the community switch. The switch path is: Applications > Your App > Chat > Configuration > Group Configuration > Community. Once the switch is enabled, you can use it.
1. This API is supported only by topic-enabled communities. You need to purchase the [Premium Version] in the Console > Feature Configuration> Group Configuration> Group Feature Configuration> Community page. After enabling the community, you must enable the topic switch to use it.
2. Before using this API, you must call createGroup to create a topic-enabled community.
API
chat.createTopicInCommunity(options);
Parameters
The 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
Return values
Promise
Sample
// Create a topic
let promise = chat.createTopicInCommunity({
groupID:'group1',
topicName:'test',
avatar:'xxx'
notification:'xxx',
introduction:'xxx',
customData:'xxxx',
});
promise.then(function(imResponse){// Created successfully
console.log(imResponse.data.topicID);// Topic ID
}).catch(function(imError){// Creation failed
console.warn('createTopicInCommunity error:', imError);// Failed to create the topic
});
Deleting a topic
Caution
This interface is only applicable to communities that support topics.
API
chat.deleteTopicFromCommunity(options);
Parameters
The 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.
console.warn('getTopicList error:', imError);// Information on the failure in getting the topic list
});
Topic group
The community-group-topic hierarchy is implemented as follows:
The 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.
When a community is loaded, the groupCustomField field for the topic group list in the community (group) profile is used to display the group list.
When the topic list of a community is loaded, the customData field in the topic profile is used to get the group name for assignment.
Note
1. You can customize the key value of the groupCustomField field for the topic group list of the community (group).
The following sample code names it topic_category.
Configuring the group list for the community
You only need to modify the groupCustomField field in the group profile. The key value is the name of the field for the topic group list you defined.
Sample
// Topic group list
const categoryList =['Group 1','Group 2'];
// Update the topic group list of the community
let promise = chat.updateGroupProfile({
groupID:'group1',
// You need to configure the custom group field `topic_category` in the console first.