JavaScript
功能描述
搜索云端用户,支持根据关键词进行快速查找。用户可以通过此接口迅速定位已知用户,如好友或关注的联系人;同时,也可以利用关键词进行新用户的发现,拓展社交圈或寻找感兴趣的用户。
说明:
搜索云端用户功能 v3.5.0 起支持。
搜索范围:根据关键词对所有用户的昵称 nick 进行模糊搜索匹配, 对所有用户的 userID 进行精准搜索匹配。
获取的用户列表中的资料是不完整的(仅包括头像 avatar、昵称 nick、用户账号 userID、性别 gender、生日 birthday、个性签名 selfSignature 等,能够满足用户搜索结果列表的渲染需求,不包含自定义字段),若要查询详细用户资料,可参考:getUserProfile。
单次最大搜索数结果量为 100 条。
此接口云端限频 2次/秒, 本地接口调用默认限制 20次/5秒。
搜索云端用户
接口
chat.searchCloudUsers(options);
参数
参数 options 为 Object 类型,包含的属性值如下:
Name | Type | Description |
keywordList | Array | required 关键字列表,最多支持 5 个。 |
keywordListMatchType | String | undefined | 关键字列表匹配类型: or:“或”关系搜索(默认) and:“与”关系搜索 |
gender | String | undefined | 用户性别,不传入时默认搜索所有性别用户。性别表示: TencentCloudChat.TYPES.GENDER_FEMALE 女性TencentCloudChat.TYPES.GENDER_MALE 男性 |
miniBirthday | Number | undefined | 用户最小生日,如 19900101。 |
maxBirthday | Number | undefined | 用户最大生日,与 miniBirthday 同时设置时则必须大于等于 miniBirthday ,如 20240101。 |
cursor | String | undefined | 每次搜索云端用户的起始位置。第一次搜索时不要传入 cursor ,继续搜索时填入上次调用 searchCloudUsers 接口返回的 cursor 的值。 |
count | Number | undefined | 每次搜索云端用户结果的数量,默认值为 20, 最大值为100。 |
返回值
Promise
Name | Type | Description |
totalCount | Number | 满足搜索条件的用户总数。 |
searchResultList | Array | 满足搜索条件的用户资料 Profile 列表,仅包括头像 avatar 、昵称 nick 、用户账号 userID 、性别 gender 、生日 birthday 、个性签名 selfSignature 等信息,能够满足用户搜索结果列表的渲染需求,不包含自定义字段,若要查询详细用户资料,可参考:getUserProfile。 |
cursor | String | 调用搜索接口续拉时需要填的游标。 |
示例
// 搜索指定关键字列表和出生时间范围搜索// - 搜索用户里出现 'test' 或 'user',且用户出生时间在 20240101 之前的用户let promise = chat.searchCloudUsers({keywordList: ['test', 'user'],maxBirthday: 20240101,});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 profileItem = searchResultList[i];const { userID, nick, gender, avatar } = profileItem;console.log(userID); // 用户 IDconsole.log(nick); // 用户昵称console.log(gender); // 用户性别console.log(avatar); // 用户头像}}).catch(function(imError) {console.error(imError); // 搜索用户失败});