跳转到内容

消息记录

分页获取指定会话的历史消息记录。调用此接口后,会话将自动标记为已读,未读消息数归零。

项目 内容
方法 GET
URL /api/messages/conversations/{id}/messages
鉴权 是,需在请求头携带 Token
参数名 类型 必填 说明
id int 是(路径参数) 会话 ID
page int 页码,默认 1
per_page int 每页条数,默认 50
Terminal window
curl -X GET "/api/messages/conversations/101/messages?page=1&per_page=50" \
-H "Authorization: Bearer your_token_here"
字段 类型 说明
code int 状态码,0 表示成功
message string 提示信息
data.items array 消息列表
data.items[].id int 消息 ID
data.items[].conversation_id int 会话 ID
data.items[].sender_id int 发送者用户 ID
data.items[].sender_name string|null 发送者名称,可为空
data.items[].sender_avatar string|null 发送者头像 URL,可为空
data.items[].is_self bool 是否为当前用户发送
data.items[].type string 消息类型:textimagefileaudiovideolocation
data.items[].content string 消息原始内容
data.items[].display_content string 消息展示内容(已处理)
data.items[].extra object|null 媒体附加信息,可为空
data.items[].is_recalled bool 是否已撤回
data.items[].is_read bool 是否已读
data.items[].read_at string|null 已读时间,可为空
data.items[].read_count int 已读人数(群聊)
data.items[].unread_count int 未读人数(群聊)
data.items[].time string 发送时间,格式 H:i
data.items[].created_at string 发送时间,格式 Y-m-d H:i:s
data.pagination object 分页信息
data.pagination.total int 总条数
data.pagination.per_page int 每页条数
data.pagination.current_page int 当前页码
data.pagination.last_page int 最后一页页码
data.pagination.has_more bool 是否有更多数据
{
"code": 0,
"message": "success",
"data": {
"items": [
{
"id": 2048,
"conversation_id": 101,
"sender_id": 5,
"sender_name": "张三",
"sender_avatar": "https://devapi.fengshengshou.com/storage/avatars/5.png",
"is_self": false,
"type": "text",
"content": "大家好,今天下午三点开会。",
"display_content": "大家好,今天下午三点开会。",
"extra": null,
"is_recalled": false,
"is_read": true,
"read_at": "2026-07-05 15:01:00",
"read_count": 8,
"unread_count": 3,
"time": "15:00",
"created_at": "2026-07-05 15:00:00"
}
],
"pagination": {
"total": 120,
"per_page": 50,
"current_page": 1,
"last_page": 3,
"has_more": true
}
}
}
{
"code": 403,
"message": "无权访问此会话",
"data": null
}