基于群属性,我们可以做语聊房的麦位管理。当有人上麦的时候,可以设置一个群属性管理上麦人信息。当有人下麦的时候,可以删除对应群属性。其他成员可以通过获取群属性列表来展示麦位列表。
注意:
- v2.14.0 起仅支持直播群(AVChatRoom)。
- v2.25.0 起同时支持 AVChatRoom、Public、Meeting、Work、Community 五种群类型。
群属性功能特性有:
initGroupAttributes
、setGroupAttributes
、deleteGroupAttributes
接口 SDK 限制为单个登录用户 5 秒 10 次,超过后回调 2996 错误码。getGroupAttributes
接口 SDK 限制为单个登录用户 5 秒 20 次,超过后回调 2996 错误码。接口
tim.initGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
Name | Type | Description |
---|---|---|
groupID | String | 群组 ID |
groupAttributes | Object | 群属性 |
返回值
Promise
对象。
示例
let promise = tim.initGroupAttributes({
groupID: 'group1',
groupAttributes: { key1: 'value1', key2: 'value2' }
});
promise.then(function(imResponse) { // 初始化成功
console.log(imResponse.data.groupAttributes); // 初始化成功的群属性
}).catch(function(imError) { // 初始化失败
console.warn('initGroupAttributes error:', imError); // 初始化群属性失败的相关信息
});
接口
tim.setGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
Name | Type | Description |
---|---|---|
groupID | String | 群组 ID |
groupAttributes | Object | 群属性 |
返回值
Promise
对象。
示例
let promise = tim.setGroupAttributes({
groupID: 'group1',
groupAttributes: { key1: 'value1', key2: 'value2' }
});
promise.then(function(imResponse) { // 设置成功
console.log(imResponse.data.groupAttributes); // 设置成功的群属性
}).catch(function(imError) { // 设置失败
console.warn('setGroupAttributes error:', imError); // 设置群属性失败的相关信息
});
注意:keyList 传入非空数组表示删除指定的群属性 key-value,传入空数组表示删除全部群属性。
接口
tim.deleteGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
Name | Type | Description |
---|---|---|
groupID | String | 群组 ID |
keyList | Array | 群属性 key 列表 |
返回值
Promise
对象。
示例
// 删除指定的群属性 key-value
let promise = tim.deleteGroupAttributes({
groupID: 'group1',
keyList: ['key1', 'key2']
});
promise.then(function(imResponse) { // 删除成功
console.log(imResponse.data.keyList); // 删除成功的群属性 key 列表
}).catch(function(imError) { // 删除失败
console.warn('deleteGroupAttributes error:', imError); // 删除群属性失败的相关信息
});
// 删除全部群属性
let promise = tim.deleteGroupAttributes({
groupID: 'group1',
keyList: []
});
promise.then(function(imResponse) { // 删除成功
console.log(imResponse.data.keyList); // 删除成功的群属性 key 列表
}).catch(function(imError) { // 删除失败
console.warn('deleteGroupAttributes error:', imError); // 删除群属性失败的相关信息
});
注意:keyList 传入非空数组表示获取指定的群属性,传入空数组表示获取全部群属性。
接口
tim.getGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
Name | Type | Description |
---|---|---|
groupID | String | 群组 ID |
keyList | Array | 群属性 key 列表 |
返回值
Promise
对象。
示例
// 获取指定的群属性
let promise = tim.getGroupAttributes({
groupID: 'group1',
keyList: ['key1', 'key2']
});
promise.then(function(imResponse) { // 获取成功
console.log(imResponse.data.groupAttributes); // 指定 key 的群属性
}).catch(function(imError) { // 获取失败
console.warn('getGroupAttributes error:', imError); // 获取群属性失败的相关信息
});
// 获取全部群属性
let promise = tim.getGroupAttributes({
groupID: 'group1',
keyList: []
});
promise.then(function(imResponse) { // 获取成功
console.log(imResponse.data.groupAttributes); // 全部群属性
}).catch(function(imError) { // 获取失败
console.warn('getGroupAttributes error:', imError); // 获取群属性失败的相关信息
});
let onGroupAttributesUpdated = function(event) {
const groupID = event.data.groupID // 群组ID
const groupAttributes = event.data.groupAttributes // 更新后的群属性
console.log(event.data);
};
tim.on(TIM.EVENT.GROUP_ATTRIBUTES_UPDATED, onGroupAttributesUpdated);
本页内容是否解决了您的问题?