一、功能描述
注意:话题不支持群属性。
群属性功能特性有:
1. 最多支持 16 个群属性,每个群属性的大小最大支持 4k,所有群属性的大小最大支持 16k。
2. initGroupAttributes、setGroupAttributes、deleteGroupAttributes 接口 SDK 限制为单个登录用户 5 秒 10 次,超过后回调 2996 错误码。
3. getGroupAttributes 接口 SDK 限制为单个登录用户 5 秒 20 次,超过后回调 2996 错误码。
4. 当每次登录成功后初次修改群属性时,请你先调用 getGroupAttributes 拉取到最新的群属性之后,再发起修改操作。
5. 当多个用户同时修改同一个群属性时,只有第一个用户可以执行成功,其它用户会收到 10056 错误码;收到这个错误码之后,请你调用 getGroupAttributes 把本地保存的群属性更新到最新之后,再发起修改操作。
6. 登录成功后直播群(AVChatRoom)使用该功能必须先调用 joinGroup 加入直播群,Public、Meeting、Work、Community 类型群组如果已加群,则不需要重复进行加群操作。
二、初始化群属性
接口
chat.initGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
| 参数 | 类型 | 说明 |
| groupID | String | 群组 ID |
| groupAttributes | Object | 群属性 |
返回值
Promise
示例
let promise = chat.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); // 初始化群属性失败的相关信息});
三、设置群属性
接口
chat.setGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
| 参数 | 类型 | 说明 |
| groupID | String | 群组 ID |
| groupAttributes | Object | 群属性 |
返回值
Promise
示例
let promise = chat.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,传入空数组表示删除全部群属性。
接口
chat.deleteGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
| 参数 | 类型 | 说明 |
| groupID | String | 群组 ID |
| keyList | Array | 群属性 key 列表 |
返回值
Promise
示例
// 删除指定的群属性 key-valuelet promise = chat.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 = chat.deleteGroupAttributes({ groupID: 'group1', keyList: []});promise.then(function(imResponse) { // 删除成功 console.log(imResponse.data.keyList); // 删除成功的群属性 key 列表}).catch(function(imError) { // 删除失败 console.warn('deleteGroupAttributes error:', imError); // 删除群属性失败的相关信息});
五、获取群属性
注意:keyList 传入非空数组表示获取指定的群属性,传入空数组表示获取全部群属性。
接口
chat.getGroupAttributes(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
| 参数 | 类型 | 说明 |
| groupID | String | 群组 ID |
| keyList | Array | 群属性 key 列表 |
返回值
Promise
示例
// 获取指定的群属性let promise = chat.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 = chat.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);};chat.on(TencentCloudChat.EVENT.GROUP_ATTRIBUTES_UPDATED, onGroupAttributesUpdated);