跳转到正文

统一搜索 ​

一次查询返回会话、好友、群和消息四组结果,适合应用内的全局搜索。

GET /app/sdk/search

调用方: SDK 客户端 · 认证: IM Token

请求头:Authorization: Bearer <IM Token>。先通过宿主后端获取 Token,再交给 SDK 使用。

请求参数 ​

Query ​

参数类型必填说明
querystring是搜索关键词,1–80 字符,不含控制字符。

请求示例 ​

bash
curl -G 'https://example.com/app/sdk/search' \
  -H "Authorization: Bearer $POPOIM_TOKEN" \
  --data-urlencode 'query=海岸'

使用说明 ​

  • 同一对象已经进入 conversations 分组时,不会再重复放入 friends 或 groups。
  • 每组最多 20 项。消息组按会话汇总,每个会话先给出一条命中的消息。需要在某个会话中继续查找时,使用搜索会话消息。

返回参数 ​

成功响应的最外层字段如下。下面所有业务字段都位于 data 中。

字段类型说明
codeinteger0 表示成功;非 0 时查看 msg,不把 data 当成功结果使用。
msgstring成功通常为 ok,失败时为错误说明。
dataobject本次请求的业务结果,字段见下表。

data 字段 ​

字段类型说明
querystring本次搜索关键词。
conversationsSearchSection已存在的会话命中结果。
friendsSearchSection没有放入会话分组的好友结果。
groupsSearchSection没有放入会话分组的群结果。
messagesMessageSearchSection聊天记录命中结果。

返回示例 ​

示例展示字段结构;ID、时间和资料仅作说明,请使用实际回包。

json
{
  "code": 0,
  "msg": "ok",
  "data": {
    "query": "海岸",
    "conversations": {
      "items": [],
      "limited": false
    },
    "friends": {
      "items": [],
      "limited": false
    },
    "groups": {
      "items": [],
      "limited": false
    },
    "messages": {
      "items": [
        {
          "conversation_id": "friend_bGluemhvdQ",
          "type": "friend",
          "target_id": "linzhou",
          "name": "林舟",
          "avatar": "https://example.com/uploads/avatars/linzhou.jpg",
          "username": "linzhou",
          "member_count": null,
          "is_friend": true,
          "match_field": "message",
          "match_text": "秋日海岸出游的集合时间已确认,周六 8:30 公司楼下见 🌅",
          "message_id": "8601"
        }
      ],
      "limited": false
    }
  }
}

返回对象字段 ​

数组中的每个对象使用同一套字段。点击名称跳到说明:

会话、好友或群的搜索分组 · 会话、好友或群的搜索结果 · 消息搜索分组 · 消息搜索分组的结果

会话、好友或群的搜索分组(SearchSection) ​

字段类型说明
itemsSearchItem[]本组最多 20 项。
limitedbooleantrue 表示还有未展示的结果。

会话、好友或群的搜索结果(SearchItem) ​

字段类型说明
conversation_idstring命中对象的会话 ID。
typestringfriend 单聊对象;group 群。
target_idstring外部 user_id 或公开 group_id。
namestring当前账号看到的显示名。
avatarstring头像地址。
usernamestring | null用户账号;群或未设置账号时为 null。
member_countinteger | null群成员数;单聊对象为 null。
is_friendboolean | null单聊对象是否为好友;群为 null。
match_fieldstring匹配字段:name 名称、remark 备注、account 账号、pinyin 拼音、message 消息。
match_textstring命中的文字摘要。

消息搜索分组(MessageSearchSection) ​

字段类型说明
itemsMessageSearchItem[]本组最多 20 项,每个会话只给出一条命中的消息。
limitedbooleantrue 表示还有未展示的结果。

消息搜索分组的结果(MessageSearchItem) ​

字段类型说明
conversation_idstring命中对象的会话 ID。
typestringfriend 单聊对象;group 群。
target_idstring外部 user_id 或公开 group_id。
namestring当前账号看到的显示名。
avatarstring头像地址。
usernamestring | null用户账号;群或未设置账号时为 null。
member_countinteger | null群成员数;单聊对象为 null。
is_friendboolean | null单聊对象是否为好友;群为 null。
match_fieldstring匹配字段:name 名称、remark 备注、account 账号、pinyin 拼音、message 消息。
match_textstring命中的文字摘要。
message_idstring命中的消息 ID,可用于定位这条消息。

错误处理 ​

先检查 HTTP 状态,再检查 code。业务失败可能仍为 HTTP 200;非 0 的 code 都不能当成功。完整错误码见请求约定。

返回搜索接口列表 · HTTP 请求约定