JavaScript
功能描述
搜索云端群成员,支持通过关键词进行模糊匹配。用户可以在自己已加入的群组中,快速找到符合关键词的群成员,便于查找特定成员或进行群内管理。
说明:
此功能属于增值服务,需要您购买云端搜索插件,请点击 购买。
搜索云端群成员功能 v3.5.0 起支持。
搜索范围:在当前登录用户所在的所有群组的群成员中,根据关键词对群成员用户昵称 nick、群名片 nameCard 进行关键字模糊匹配搜索,对群成员 userID 进行精确搜索。
搜索结果中仅包括群部分资料(群组ID groupID、群组名称 name、群组类型 type、群组头像 avatar)与部分群成员部分资料(群成员 userID、群成员昵称 nick、群名片 nameCard),能够满足群成员搜索结果列表的渲染需求,若要查询详细群成员资料,可参考:getGroupMemberProfile。
单次最大搜索数结果量为 100 条。
不支持直播群(TencentCloudChat.TYPES.GRP_AVCHATROOM)类型的搜索。
此接口云端限频 2次/秒, 本地接口调用默认限制 20次/5秒。
搜索云端群成员
接口
chat.searchCloudGroupMembers(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
Name | Type | Description |
keywordList | Array | required 关键字列表,最多支持 5 个。 |
keywordListMatchType | String | undefined | 关键字列表匹配类型: or:“或”关系搜索(默认) and:“与”关系搜索 |
groupTypeList | Array | undefined | 不传入时默认搜索所有类型群成员(不支持直播群 TencentCloudChat.TYPES.GRP_AVCHATROOM 类型的搜索)。群类型表示: TencentCloudChat.TYPES.GRP_WORK 好友工作群TencentCloudChat.TYPES.GRP_PUBLIC 陌生人社交群TencentCloudChat.TYPES.GRP_MEETING 临时会议群TencentCloudChat.TYPES.GRP_COMMUNITY 社群 |
groupIDList | Array | undefined | 搜索指定群 ID 列表,不传入时默认搜索所有群组 |
cursor | String | undefined | 每次搜索云端群成员的起始位置。第一次搜索时不要传入 cursor ,继续搜索时填入上次调用 searchCloudGroupMembers 接口返回的 cursor 的值。 |
count | Number | undefined | 每次搜索云端群成员结果的数量,默认值为 20, 最大值为100。 |
返回值
Promise
Name | Type | Description |
totalCount | Number | 满足搜索条件的群成员总数。 |
searchResultList | Array | 满足搜索条件的群成员列表,按照群组ID groupID 进行分组返回。 |
cursor | String | 调用搜索接口续拉时需要填的游标。 |
其中
searchResultList
是个列表,内含搜索结果对象,参数说明如下:Name | Type | Description |
groupInfo | Object | 群组资料信息,包含以下群组资料: groupID 群组 ID。name 群组名称。type 群组类型。avatar 群组头像。 |
memberList | Array | 当前群组内满足搜索条件的群成员列表。列表中每个群成员包含以下信息: userID 群成员用户 ID。nick 群成员用户昵称。nameCard 群名片。 |
示例
// 搜索指定关键字列表和群ID列表// - 搜索当前加入群组的群成员里出现 'test' 或 'user',且群ID为 'group1' 或 'group2' 的群的群成员let promise = chat.searchCloudGroupMembers({keywordList: ['test', 'user'],groupIDList: ['group1', 'group2'],});promise.then(function(imResponse) {// 搜索群成员成功const { totalCount, cursor, searchResultList } = imResponse.data;console.log(totalCount); // 满足搜索条件的群成员总数量console.log(cursor); // 下一次云端搜索的起始位置, 如果没有表示搜索结果拉取完成console.log(searchResultList); // 满足搜索条件的群成员列表,分页返回分组结果,每页最大返回 100 条,根据传入 count 设定for (let i = 0; i < searchResultList.length; i++) {const searchResultItem = searchResultList[i];const { groupInfo, memberList } = searchResultItem;const { groupID, name, type, avatar } = groupInfo;// 群 groupID / 群名称 / 群类型 / 群头像console.log(groupID, name, type, avatar);console.log(memberList); // 该群中满足条件成员列表for (let i = 0; i < memberList.length; i++) {const memberItem = memberList[i];const { userID, nick, nameCard } = memberItem;console.log(userID); // 群成员用户 IDconsole.log(nick); // 群成员用户昵称console.log(nameCard); // 群名片}}}).catch(function(imError) {console.error(imError); // 搜索群成员失败});