外观
读取好友目录
读取好友及在线状态,支持按首字母分组或按名称、备注筛选。
GET /app/sdk/friends
调用方: SDK 客户端 · 认证: IM Token
请求头:Authorization: Bearer <IM Token>。先通过宿主后端获取 Token,再交给 SDK 使用。
请求参数
Query
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
cursor | string | 否 | 上一次返回的 next_cursor,1–2048 字符;首次读取时不传。游标已包含原筛选条件,不能自行修改或跨账号使用。 与 initial、query 互斥。 |
initial | string | 否 | 首字母分组 A–Z 或 #,输入不区分大小写;与 cursor、query 互斥。 |
query | string | 否 | 按名称或备注筛选,去除首尾空白后 1–80 字符,不含控制字符;与 cursor 互斥。 |
请求示例
bash
curl 'https://example.com/app/sdk/friends' \
-H "Authorization: Bearer $POPOIM_TOKEN"使用说明
- 首次读取不传参数。继续翻页只传 cursor,不重复提交首字母或关键词。
返回参数
成功响应的最外层字段如下。下面所有业务字段都位于 data 中。
| 字段 | 类型 | 说明 |
|---|---|---|
code | integer | 0 表示成功;非 0 时查看 msg,不把 data 当成功结果使用。 |
msg | string | 成功通常为 ok,失败时为错误说明。 |
data | object | 本次请求的业务结果,字段见下表。 |
data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
items | FriendItem[] | 本页好友,最多 1000 项。 |
initials | string[] | 当前好友目录中可用的首字母分组。 |
next_cursor | string | null | 下一页游标;没有下一页时为 null。 |
has_more | boolean | 是否还有下一页。 |
返回示例
示例展示字段结构;ID、时间和资料仅作说明,请使用实际回包。
json
{
"code": 0,
"msg": "ok",
"data": {
"items": [
{
"conversation_id": "friend_bGluemhvdQ",
"user": {
"id": "1025",
"user_id": "linzhou",
"username": "linzhou",
"nickname": "林舟",
"avatar": "https://example.com/uploads/avatars/linzhou.jpg",
"signature": "把每一次出发安排妥当",
"profile_updated_at": 1792301400000
},
"presence": {
"online": true,
"online_updated_at": 1792301400000
},
"remark": "林舟 · 行政",
"blocked": false,
"display_name": "林舟 · 行政",
"initial": "L"
}
],
"initials": [
"L"
],
"next_cursor": null,
"has_more": false
}
}返回对象字段
数组中的每个对象使用同一套字段。点击名称跳到说明:
好友目录项(FriendItem)
| 字段 | 类型 | 说明 |
|---|---|---|
conversation_id | string | 与此人的单聊会话 ID。 |
user | User | 好友资料。 |
presence | Presence | 好友在线状态。 |
remark | string | 本人设置的备注;没有备注时为空字符串。 |
blocked | boolean | 本人是否拉黑对方。 |
display_name | string | 目录显示名,优先使用备注。 |
initial | string | 当前显示名的首字母分组,A–Z 或 #。 |
用户资料(User)
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | IM 内部用户 ID,以十进制字符串返回。调用用户相关接口时使用下面的 user_id。 |
user_id | string | 宿主系统提供的用户 ID,例如 chenyue;用于识别同一个人。 |
username | string | null | 可用于精确搜索的账号;没有设置时为 null。 |
nickname | string | 显示昵称。 |
avatar | string | 头像地址。 |
signature | string | 个性签名;未设置时为空字符串。 |
profile_updated_at | integer | 公开资料最后更新时间,Unix 毫秒时间戳。 |
在线状态(Presence)
| 字段 | 类型 | 说明 |
|---|---|---|
online | boolean | 当前是否在线。 |
online_updated_at | integer | 在线状态最后更新时间,Unix 毫秒时间戳。 |
错误处理
先检查 HTTP 状态,再检查 code。业务失败可能仍为 HTTP 200;非 0 的 code 都不能当成功。完整错误码见请求约定。
