消息记录
分页获取指定会话的历史消息记录。调用此接口后,会话将自动标记为已读,未读消息数归零。
| 项目 | 内容 |
|---|---|
| 方法 | GET |
| URL | /api/messages/conversations/{id}/messages |
| 鉴权 | 是,需在请求头携带 Token |
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | int | 是(路径参数) | 会话 ID |
| page | int | 否 | 页码,默认 1 |
| per_page | int | 否 | 每页条数,默认 50 |
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 | 消息类型:text、image、file、audio、video、location |
| 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}