Manage Community

功能描述

社群是一个由于共同主题而让大家聚集在一起的超大群组,您可以在社群下根据不同兴趣创建多个话题。社群用来管理群成员。社群下的所有话题不仅可以共享社群成员,还可以独立收发消息而不相互干扰。




社群管理

创建社群

API
chat.createGroup(options);
示例
// 创建支持话题的社群
let promise = chat.createGroup({
type: TencentCloudChat.TYPES.GRP_COMMUNITY,
name: 'WebSDK',
isSupportTopic: true,
});
promise.then(function(imResponse) { // 创建成功
console.log(imResponse.data.group); // 创建的群的资料
}).catch(function(imError) {
console.warn('createGroup error:', imError); // 创建群组失败的相关信息
});

获取支持话题的社群列表

说明:
1. 该接口仅适用于获取支持话题的社群,需 购买进阶版, 登录 Chat Console 并开启社群开关后方可使用,开关路径:Applications > Your App > Chat > Configuration > Group Configuration > Community。
接口
chat.getJoinedCommunityList();
参数
返回值
Promise
示例
// 获取支持话题的社群列表
let promise = chat.getJoinedCommunityList();
promise.then(function(imResponse) { // 获取成功
console.log(imResponse.data.groupList); // 支持话题的社群列表
}).catch(function(imError) { // 获取失败
console.warn('getJoinedCommunityList error:', imError); // 失败的相关信息
});

创建话题

说明:
1. 该接口使用前必须先调用 createGroup 创建支持话题的社群。
接口
chat.createTopicInCommunity(options);
参数
参数 optionsObject类型,包含的属性值如下:
参数
类型
说明
groupID
String
话题所属社群 ID
topicName
String
话题名称
topicID
String
自定义话题 ID 时,格式必须是社群 ID 拼接上自定义话题 ID。例如:@TGS#_xxx@TOPIC#_xxx
avatar
String
话题头像
notification
String
话题公告
introduction
String
话题简介
customData
String
话题自定义信息
返回值
Promise
示例
// 创建话题
let promise = chat.createTopicInCommunity({
groupID: 'group1',
topicName: 'test',
avatar: 'xxx'
notification: 'xxx',
introduction: 'xxx',
customData: 'xxxx',
});
promise.then(function(imResponse) { // 创建成功
console.log(imResponse.data.topicID); // 话题 ID
}).catch(function(imError) { // 创建失败
console.warn('createTopicInCommunity error:', imError); // 创建话题失败的相关信息
});

删除话题

接口
chat.deleteTopicFromCommunity(options);
参数
参数 optionsObject类型,包含的属性值如下:
参数
类型
说明
groupID
String
话题所属社群 ID
topicIDList
Array | undefined
话题 ID 列表,不传 topicIDList 表示删除全部话题
返回值
Promise
示例
// 删除某个社群下指定话题
let promise = chat.deleteTopicFromCommunity({
groupID: 'group1',
topicIDList: ['topicID'],
});
promise.then(function(imResponse) { // 删除成功
const { successTopicList, failureTopicList } = imResponse.data;
// 删除成功的话题列表
successTopicList.forEach((item) => {
const { topicID } = item;
});
// 删除失败的话题列表
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // 删除失败
console.warn('deleteTopicFromCommunity error:', imError); // 删除话题失败的相关信息
});
// 解散社群,删除此社群下所有话题
let promise = chat.dismissGroup('group1');
promise.then(function(imResponse) { // 解散成功
console.log(imResponse.data.groupID);
}).catch(function(imError) {
console.warn('dismissGroup error:', imError); // 解散群组失败的相关信息
});

修改话题信息

说明:
话题内其他成员可以收到 TencentCloudChat.EVENT.TOPIC_UPDATED 事件。
接口
chat.updateTopicProfile(options);
参数
参数 optionsObject 类型,包含的属性值如下:
参数
类型
说明
groupID
String
话题所属社群 ID
topicID
String
必填,话题 ID
topicName
String | undefined
话题名称
avatar
String | undefined
话题头像
notification
String | undefined
话题公告
introduction
String | undefined
话题简介
customData
String | undefined
话题自定义信息
muteAllMembers
Boolean | undefined
设置全体禁言,
true - 全体禁言
false - 取消全体禁言
返回值
Promise
示例
// 更新话题资料
let promise = chat.updateTopicProfile({
groupID: 'group1',
topicID: 'topic1',
topicName: 'test',
avatar: 'xxx'
notification: 'xxx',
introduction: 'xxx',
customData: 'xxxx',
muteAllMembers: true
});
promise.then(function(imResponse) { // 设置话题资料成功
console.log(imResponse.data.topic); // 返回修改后的话题资料
}).catch(function(imError) { // 设置话题资料失败
console.warn('updateTopicProfile error:', imError); // 设置话题资料失败的相关信息
});

获取话题列表

接口
chat.getTopicList(options);
参数
参数 optionsObject类型,包含的属性值如下:
参数
类型
说明
groupID
String
话题所属社群 ID
topicIDList
Array | undefined
话题 ID 列表,不传 topicIDList 表示获取全部话题
返回值
Promise
示例
// 获取某个社群下指定的话题
let promise = chat.getTopicList({
groupID: 'group1',
topicIDList: ['topicID'],
});
promise.then(function(imResponse) { // 获取成功
const { successTopicList, failureTopicList } = imResponse.data;
// 获取成功的话题列表
successTopicList.forEach((item) => {
const { topicID } = item;
});
// 获取失败的话题列表
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // 获取失败
console.warn('getTopicList error:', imError); // 获取话题列表失败的相关信息
});
// 获取某个社群下全部的话题
let promise = chat.getTopicList({
groupID: 'group1',
});
promise.then(function(imResponse) { // 获取成功
const { successTopicList, failureTopicList } = imResponse.data;
// 获取成功的话题列表
successTopicList.forEach((item) => {
const { topicID } = item;
});
// 获取失败的话题列表
failureTopicList.forEach((item) => {
const { topicID, code, message } = item;
})
}).catch(function(imError) { // 获取失败
console.warn('getTopicList error:', imError); // 获取话题列表失败的相关信息
});

监听话题回调

示例
let onTopicCreated = function(event) {
const groupID = event.data.groupID // 话题所属社群 ID
const topicID = event.data.topicID // 话题 ID
console.log(event.data);
};
chat.on(TencentCloudChat.EVENT.TOPIC_CREATED, onTopicCreated);
let onTopicDeleted = function(event) {
const groupID = event.data.groupID // 话题所属社群 ID
const topicIDList = event.data.topicIDList // 删除的话题 ID 列表
console.log(event.data);
};
chat.on(TencentCloudChat.EVENT.TOPIC_DELETED, onTopicDeleted);
let onTopicUpdated = function(event) {
const groupID = event.data.groupID // 话题所属社群 ID
const topic = event.data.topic // 话题资料
console.log(event.data);
};
chat.on(TencentCloudChat.EVENT.TOPIC_UPDATED, onTopicUpdated);