• UIKit
  • SDK
  • サーバー API
Chat/
SDK/
Web/
コミュニティトピック/
SDK
  • Chat SDK のインストール
  • Chat SDK の初期化
  • ログインとログアウト
  • 顧客インターフェース
  • Changelog
  • メッセージ
    • Overview
    • メッセージ送信
    • メッセージの受信
    • 過去のメッセージ
    • メッセージ転送
    • メッセージの変更
    • メッセージ削除
    • 過去のメッセージをクリアします
    • メッセージの取り消し
    • オンラインメッセージの送信
    • メッセージの既読レシート
    • クエリーメッセージ
    • ターゲットグループメッセージ
    • 通知しません
    • Key-Value の拡張
    • 翻訳
  • セッション
    • Overview
    • セッションリスト
    • セッションの取得
    • 未読数
    • セッションの先頭固定表示
    • セッションの削除
    • マーク
    • セッショングループ
  • グループ
    • Overview
    • グループ管理
    • グループプロファイル
    • グループメンバーの管理
    • グループメンバープロファイル
    • グループプロパティのカスタマイズ
    • グループカウンター
  • コミュニティトピック
    • コミュニティ管理
  • ユーザープロファイルとリレーションシップチェーン
    • ユーザープロファイル
    • ユーザー状態
    • 友達管理
    • 友達リスト
    • ブラックリスト
  • Guideline for Beginners
  • コンソールガイド
    • アプリケーションの作成とアップグレード
    • 基本設定
    • 機能設定
    • アカウント管理
    • グループ管理
    • コールバック設定
  • 製品紹介
    • メッセージ管理
      • シングルチャットメッセージ
      • メッセージの保存
      • オフラインプッシュ
      • グループメッセージ
      • メッセージフォーマット
    • アカウントシステム
      • ログイン認証
      • オンライン状態管理
    • グループ関連
      • グループシステム
      • グループ管理
    • ユーザープロファイルとリレーションシップチェーン
      • 資料管理
      • リレーションシップチェーン管理
  • 購入ガイド
    • 課金の概要
    • 価格
  • エラーコード
このページは現在英語版のみで提供されており、日本語版も近日中に提供される予定です。ご利用いただきありがとうございます。

コミュニティ管理

Feature Description

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.
API
chat.getJoinedCommunityList();
Return values
Promise
Sample
// Get the list of topic-enabled communities
let promise = chat.getJoinedCommunityList();
promise.then(function(imResponse) { // Got successfully
console.log(imResponse.data.groupList); // List of topic-enabled communities
}).catch(function(imError) { // Getting failed
console.warn('getJoinedCommunityList error:', imError); // Failure message
});

Creating a topic

Caution
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.
Return values
Promise
Sample
// Delete a specified topic under a community
let promise = chat.deleteTopicFromCommunity({
groupID: 'group1',
topicIDList: ['topicID']
});
promise.then(function(imResponse) { // Deleted successfully
const { successTopicList, failureTopicList } = imResponse.data;
// List of topics deleted successfully
successTopicList.forEach((item) => {
const { topicID } = item;
});
// List of topics failed to be deleted
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // Deletion failed
console.warn('deleteTopicFromCommunity error:', imError); // Failed to delete the topic
});
// Delete all the topics under a community
let promise = chat.deleteTopicFromCommunity({
groupID: 'group1',
});
promise.then(function(imResponse) { // Deleted successfully
const { successTopicList, failureTopicList } = imResponse.data;
// List of topics deleted successfully
successTopicList.forEach((item) => {
const { topicID } = item;
});
// List of topics failed to be deleted
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // Deletion failed
console.warn('deleteTopicFromCommunity error:', imError); // Failed to delete the topic
});

Modifying the topic profile

Caution
1. This interface is only applicable to communities that support topics.
2. Other members within the topic can receive the TencentCloudChat.EVENT.TOPIC_UPDATED event.
API
chat.updateTopicProfile(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
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.
Return values
Promise
Sample
// Update the topic profile
let 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 successfully
console.log(imResponse.data.topic); // Modified topic profile
}).catch(function(imError) { // Failed to set the topic profile
// Information on the failure in setting the topic profile
console.warn('updateTopicProfile error:', imError);
});

Getting the topic list

Caution
This interface is only applicable to communities that support topics.
API
chat.getTopicList(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 obtained.
Return values
Promise
Sample
// Get a specified topic
let promise = chat.getTopicList({
groupID: 'group1',
topicIDList: ['topicID'],
});
promise.then(function(imResponse) { // Got successfully
const { successTopicList, failureTopicList } = imResponse.data;
// List of topics got successfully
successTopicList.forEach((item) => {
const { topicID } = item;
});
// List of topics failed to be got
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // Getting failed
console.warn('getTopicList error:', imError); // Information on the failure in getting the topic list
});
// Get all the topics
let promise = chat.getTopicList({
groupID: 'group1',
});
promise.then(function(imResponse) { // Got successfully
const { successTopicList, failureTopicList } = imResponse.data;
// List of topics got successfully
successTopicList.forEach((item) => {
const { topicID } = item;
});
// List of topics failed to be got
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // Getting failed
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.
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
});

Getting the list of groups in the community

Sample
let promise = chat.getGroupProfile({
groupID: 'group1',
groupCustomFieldFilter: ['topic_category']
});
promise.then(function(imResponse) {
console.log(imResponse.data.group);
const categoryList = []; // Topic group list
const { groupCustomField } = imResponse.data.group;
groupCustomField.forEach((item) => {
if (item.key === 'topic_category') {
// Parse the group list
categoryList = JSON.parse(item.value);
}
});
}).catch(function(imError){
console.warn('getGroupProfile error:', imError); // Error information
});

Adding a topic to a group

You can save the topic group with the customData field of the topic.
Sample
// Define a group for the topic
const customData = { category: 'Group 1' };
// Update the topic group
let promise = chat.updateTopicProfile({
groupID: 'group1', // Community ID
topicID: 'topic1', // Topic ID
customData: JSON.stringify(customData),
});
promise.then(function(imResponse) { // Topic group updated successfully
console.log(imResponse.data.topic); // Modified topic profile
}).catch(function(imError) { // Failed to update the topic group
console.warn('updateTopicProfile error:', imError);
});

Getting the topic group

Use the customData to parse the JSON content after getting the topic list.

Listening for topic callbacks

Sample
let onTopicCreated = function(event) {
const groupID = event.data.groupID // ID of the community to which the topic belongs
const topicID = event.data.topicID // Topic ID
console.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 belongs
const topicIDList = event.data.topicIDList // List of deleted topic IDs
console.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 belongs
const topic = event.data.topic // Topic profile
console.log(event.data);
};
chat.on(TencentCloudChat.EVENT.TOPIC_UPDATED, onTopicUpdated);