Files
open-im-server-deploy/docs/client-api.md
kim.dev.6789 e50142a3b9 复制项目
2026-01-14 22:16:44 +08:00

1456 lines
27 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# OpenIM 客户端接口文档
本文档用于前端开发人员对接 OpenIM 服务器 API 接口。
## 目录
- [基础说明](#基础说明)
- [认证接口](#认证接口)
- [用户接口](#用户接口)
- [好友接口](#好友接口)
- [群组接口](#群组接口)
- [消息接口](#消息接口)
- [会话接口](#会话接口)
- [第三方服务接口](#第三方服务接口)
- [红包接口](#红包接口)
- [会议接口](#会议接口)
- [钱包接口](#钱包接口)
- [错误码说明](#错误码说明)
---
## 基础说明
### 请求格式
- **请求方法**: 所有接口均使用 `POST` 方法(除特殊说明外)
- **Content-Type**: `application/json`
- **请求头**: 需要在请求头中携带 `token` 进行身份验证(除白名单接口外)
```http
POST /api/user/get_users_info
Content-Type: application/json
token: your_token_here
```
### 响应格式
所有接口统一返回以下格式:
```json
{
"errCode": 0, // 错误码0表示成功
"errMsg": "", // 错误消息
"errDlt": "", // 错误详情
"data": {} // 响应数据,具体结构见各接口说明
}
```
### 认证说明
- 大部分接口需要在请求头中携带 `token`
- 白名单接口无需token
- `/auth/get_admin_token` - 获取管理员token
- `/auth/parse_token` - 解析token
### 基础URL
根据部署环境配置,例如:
- 开发环境: `http://localhost:10002`
- 生产环境: `https://your-domain.com`
---
## 认证接口
### 1. 获取用户Token
**接口地址**: `POST /auth/get_user_token`
**接口描述**: 用户登录时获取token
**请求参数**:
```json
{
"secret": "string", // 密钥(必填)
"userID": "string", // 用户ID必填
"platform": 1 // 平台ID必填1-iOS, 2-Android, 3-Windows, 4-OSX, 5-Web, 6-小程序
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expireTimeSeconds": 604800
}
}
```
### 2. 解析Token
**接口地址**: `POST /auth/parse_token`
**接口描述**: 解析token验证token有效性白名单接口无需token
**请求参数**:
```json
{
"token": "string" // token字符串必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"userID": "string",
"platform": 1,
"expireTimeSeconds": 604800
}
}
```
### 3. 强制登出
**接口地址**: `POST /auth/force_logout`
**接口描述**: 强制用户登出使token失效
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"platform": 1 // 平台ID必填
}
```
---
## 用户接口
### 1. 用户注册
**接口地址**: `POST /user/user_register`
**请求参数**:
```json
{
"secret": "string", // 密钥(必填)
"users": [ // 用户列表(必填)
{
"userID": "string", // 用户ID必填
"nickname": "string", // 昵称(必填)
"faceURL": "string", // 头像URL选填
"ex": "string" // 扩展字段(选填)
}
]
}
```
### 2. 更新用户信息
**接口地址**: `POST /user/update_user_info_ex`
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"nickname": "string", // 昵称(选填)
"faceURL": "string", // 头像URL选填
"ex": "string" // 扩展字段(选填)
}
```
### 3. 获取用户信息
**接口地址**: `POST /user/get_users_info`
**请求参数**:
```json
{
"userIDs": ["user1", "user2"] // 用户ID列表必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"users": [
{
"userID": "string",
"nickname": "string",
"faceURL": "string",
"ex": "string",
"createTime": 1234567890000
}
]
}
}
```
### 4. 获取用户在线状态
**接口地址**: `POST /user/get_users_online_status`
**请求参数**:
```json
{
"userIDs": ["user1", "user2"] // 用户ID列表必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"successResult": [
{
"userID": "string",
"status": "online", // online/offline
"platformIDs": [1, 2]
}
],
"failedResult": [
{
"userID": "string",
"errMsg": "string"
}
]
}
}
```
### 5. 订阅用户状态
**接口地址**: `POST /user/subscribe_users_status`
**请求参数**:
```json
{
"userIDs": ["user1", "user2"] // 要订阅的用户ID列表必填
}
```
### 6. 获取订阅的用户状态
**接口地址**: `POST /user/get_subscribe_users_status`
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"statusList": [
{
"userID": "string",
"status": "online",
"platformIDs": [1, 2]
}
]
}
}
```
### 7. 设置全局消息接收选项
**接口地址**: `POST /user/set_global_msg_recv_opt`
**请求参数**:
```json
{
"globalRecvMsgOpt": 0 // 0-接收并通知1-接收但不通知2-不接收
}
```
---
## 好友接口
### 1. 申请添加好友
**接口地址**: `POST /friend/add_friend`
**请求参数**:
```json
{
"toUserID": "string", // 目标用户ID必填
"reqMsg": "string", // 申请消息(选填)
"ex": "string" // 扩展字段(选填)
}
```
### 2. 处理好友申请
**接口地址**: `POST /friend/add_friend_response`
**请求参数**:
```json
{
"fromUserID": "string", // 申请者用户ID必填
"handleResult": 1, // 处理结果必填0-拒绝1-同意
"handleMsg": "string" // 处理消息(选填)
}
```
### 3. 删除好友
**接口地址**: `POST /friend/delete_friend`
**请求参数**:
```json
{
"friendUserID": "string" // 好友用户ID必填
}
```
### 4. 获取好友列表
**接口地址**: `POST /friend/get_friend_list`
**请求参数**:
```json
{
"pagination": { // 分页参数(选填)
"pageNumber": 1,
"showNumber": 20
}
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"friendsInfo": [
{
"ownerUserID": "string",
"remark": "string",
"createTime": 1234567890000,
"friendUser": {
"userID": "string",
"nickname": "string",
"faceURL": "string"
}
}
],
"total": 100
}
}
```
### 5. 获取指定好友信息
**接口地址**: `POST /friend/get_designated_friends`
**请求参数**:
```json
{
"friendUserIDs": ["user1", "user2"] // 好友用户ID列表必填
}
```
### 6. 设置好友备注
**接口地址**: `POST /friend/set_friend_remark`
**请求参数**:
```json
{
"toUserID": "string", // 好友用户ID必填
"remark": "string" // 备注(必填)
}
```
### 7. 获取好友申请列表
**接口地址**: `POST /friend/get_friend_apply_list`
**请求参数**:
```json
{
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
### 8. 获取自己的申请列表
**接口地址**: `POST /friend/get_self_friend_apply_list`
**请求参数**: 同上
### 9. 添加黑名单
**接口地址**: `POST /friend/add_black`
**请求参数**:
```json
{
"toUserID": "string" // 目标用户ID必填
}
```
### 10. 获取黑名单列表
**接口地址**: `POST /friend/get_black_list`
**请求参数**:
```json
{
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
### 11. 移除黑名单
**接口地址**: `POST /friend/remove_black`
**请求参数**:
```json
{
"toUserID": "string" // 目标用户ID必填
}
```
### 12. 检查是否为好友
**接口地址**: `POST /friend/is_friend`
**请求参数**:
```json
{
"toUserIDs": ["user1", "user2"] // 用户ID列表必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"results": [
{
"userID": "string",
"isFriend": true
}
]
}
}
```
---
## 群组接口
### 1. 创建群组
**接口地址**: `POST /group/create_group`
**请求参数**:
```json
{
"groupInfo": {
"groupName": "string", // 群名称(必填)
"introduction": "string", // 群介绍(选填)
"faceURL": "string", // 群头像(选填)
"ex": "string" // 扩展字段(选填)
},
"memberUserIDs": ["user1", "user2"] // 初始成员列表(选填)
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"groupInfo": {
"groupID": "string",
"groupName": "string",
"introduction": "string",
"faceURL": "string",
"ownerUserID": "string",
"createTime": 1234567890000,
"memberCount": 1
}
}
}
```
### 2. 设置群信息
**接口地址**: `POST /group/set_group_info`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"groupName": "string", // 群名称(选填)
"introduction": "string", // 群介绍(选填)
"faceURL": "string", // 群头像(选填)
"ex": "string" // 扩展字段(选填)
}
```
### 3. 加入群组
**接口地址**: `POST /group/join_group`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"reqMessage": "string", // 申请消息(选填)
"ex": "string" // 扩展字段(选填)
}
```
### 4. 退出群组
**接口地址**: `POST /group/quit_group`
**请求参数**:
```json
{
"groupID": "string" // 群ID必填
}
```
### 5. 处理群组申请
**接口地址**: `POST /group/group_application_response`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"fromUserID": "string", // 申请者用户ID必填
"handleResult": 1, // 处理结果必填0-拒绝1-同意
"handledMsg": "string" // 处理消息(选填)
}
```
### 6. 转让群主
**接口地址**: `POST /group/transfer_group`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"newOwnerUserID": "string" // 新群主用户ID必填
}
```
### 7. 获取群组信息
**接口地址**: `POST /group/get_groups_info`
**请求参数**:
```json
{
"groupIDs": ["group1", "group2"] // 群ID列表必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"groups": [
{
"groupID": "string",
"groupName": "string",
"introduction": "string",
"faceURL": "string",
"ownerUserID": "string",
"createTime": 1234567890000,
"memberCount": 10
}
]
}
}
```
### 8. 获取已加入的群组列表
**接口地址**: `POST /group/get_joined_group_list`
**请求参数**:
```json
{
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
### 9. 获取群成员列表
**接口地址**: `POST /group/get_group_member_list`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"members": [
{
"groupID": "string",
"userID": "string",
"roleLevel": 1, // 1-群主2-管理员3-普通成员
"joinTime": 1234567890000,
"nickname": "string",
"faceURL": "string"
}
],
"total": 100
}
}
```
### 10. 邀请用户加入群组
**接口地址**: `POST /group/invite_user_to_group`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"invitedUserIDs": ["user1", "user2"], // 被邀请用户ID列表必填
"reason": "string" // 邀请理由(选填)
}
```
### 11. 踢出群成员
**接口地址**: `POST /group/kick_group`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"kickedUserIDs": ["user1"] // 被踢出用户ID列表必填
}
```
### 12. 解散群组
**接口地址**: `POST /group/dismiss_group`
**请求参数**:
```json
{
"groupID": "string" // 群ID必填
}
```
### 13. 设置群成员信息
**接口地址**: `POST /group/set_group_member_info`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"userID": "string", // 用户ID必填
"nickname": "string", // 群内昵称(选填)
"faceURL": "string", // 头像(选填)
"roleLevel": 2, // 角色等级选填1-群主2-管理员3-普通成员
"ex": "string" // 扩展字段(选填)
}
```
### 14. 禁言群成员
**接口地址**: `POST /group/mute_group_member`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"userID": "string", // 用户ID必填
"mutedSeconds": 3600 // 禁言时长(秒,必填)
}
```
### 15. 取消禁言群成员
**接口地址**: `POST /group/cancel_mute_group_member`
**请求参数**:
```json
{
"groupID": "string", // 群ID必填
"userID": "string" // 用户ID必填
}
```
### 16. 禁言群组
**接口地址**: `POST /group/mute_group`
**请求参数**:
```json
{
"groupID": "string" // 群ID必填
}
```
### 17. 取消禁言群组
**接口地址**: `POST /group/cancel_mute_group`
**请求参数**:
```json
{
"groupID": "string" // 群ID必填
}
```
---
## 消息接口
### 1. 发送消息
**接口地址**: `POST /msg/send_msg`
**请求参数**:
```json
{
"sendID": "string", // 发送者ID必填
"groupID": "string", // 群ID选填单聊不填群聊必填
"recvID": "string", // 接收者ID选填单聊必填群聊不填
"senderNickname": "string", // 发送者昵称(选填)
"senderFaceURL": "string", // 发送者头像(选填)
"contentType": 101, // 消息类型必填101-文本102-图片103-语音104-视频等
"content": "string", // 消息内容(必填)
"options": { // 消息选项(选填)
"isHistory": true, // 是否存储历史
"isPersistent": true, // 是否持久化
"isSenderSync": true // 是否同步给发送者
},
"clientMsgID": "string", // 客户端消息ID必填
"offlinePushInfo": { // 离线推送信息(选填)
"title": "string",
"desc": "string"
}
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"serverMsgID": "string",
"clientMsgID": "string",
"sendTime": 1234567890000
}
}
```
### 2. 发送简单消息
**接口地址**: `POST /msg/send_simple_msg`
**请求参数**: 同上,但参数更简化
### 3. 批量发送消息
**接口地址**: `POST /msg/batch_send_msg`
**请求参数**:
```json
{
"sendID": "string",
"groupID": "string",
"recvIDs": ["user1", "user2"], // 接收者ID列表
"contentType": 101,
"content": "string",
"clientMsgID": "string"
}
```
### 4. 获取最新序列号
**接口地址**: `POST /msg/newest_seq`
**请求参数**:
```json
{
"userID": "string" // 用户ID必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"seq": 1000 // 最新序列号
}
}
```
### 5. 根据序列号拉取消息
**接口地址**: `POST /msg/pull_msg_by_seq`
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"seqRanges": [ // 序列号范围列表(必填)
{
"start": 1,
"end": 100
}
]
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"msgs": [
{
"serverMsgID": "string",
"clientMsgID": "string",
"sendID": "string",
"recvID": "string",
"groupID": "string",
"contentType": 101,
"content": "string",
"sendTime": 1234567890000
}
]
}
}
```
### 6. 搜索消息
**接口地址**: `POST /msg/search_msg`
**请求参数**:
```json
{
"sendID": "string", // 发送者ID选填
"recvID": "string", // 接收者ID选填
"groupID": "string", // 群ID选填
"contentType": 101, // 消息类型(选填)
"keyword": "string", // 关键词(选填)
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
### 7. 撤回消息
**接口地址**: `POST /msg/revoke_msg`
**请求参数**:
```json
{
"conversationID": "string", // 会话ID必填
"seq": 100, // 消息序列号(必填)
"userID": "string" // 用户ID必填
}
```
### 8. 标记消息已读
**接口地址**: `POST /msg/mark_msgs_as_read`
**请求参数**:
```json
{
"conversationID": "string", // 会话ID必填
"seqs": [100, 101, 102], // 消息序列号列表(必填)
"userID": "string" // 用户ID必填
}
```
### 9. 标记会话已读
**接口地址**: `POST /msg/mark_conversation_as_read`
**请求参数**:
```json
{
"conversationID": "string", // 会话ID必填
"hasReadSeq": 100, // 已读序列号(必填)
"userID": "string" // 用户ID必填
}
```
### 10. 获取会话已读序列号
**接口地址**: `POST /msg/get_conversations_has_read_and_max_seq`
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"conversationIDs": ["conv1", "conv2"] // 会话ID列表必填
}
```
### 11. 删除消息
**接口地址**: `POST /msg/delete_msgs`
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"conversationID": "string", // 会话ID必填
"seqs": [100, 101, 102] // 消息序列号列表(必填)
}
```
### 12. 清空会话消息
**接口地址**: `POST /msg/clear_conversation_msg`
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"conversationID": "string" // 会话ID必填
}
```
### 13. 获取服务器时间
**接口地址**: `POST /msg/get_server_time`
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"serverTime": 1234567890000 // 服务器时间戳(毫秒)
}
}
```
---
## 会话接口
### 1. 获取所有会话
**接口地址**: `POST /conversation/get_all_conversations`
**请求参数**:
```json
{
"ownerUserID": "string" // 用户ID必填
}
```
**响应参数**:
```json
{
"errCode": 0,
"errMsg": "",
"errDlt": "",
"data": {
"conversations": [
{
"ownerUserID": "string",
"conversationID": "string",
"conversationType": 1, // 1-单聊2-群聊
"userID": "string", // 单聊时使用
"groupID": "string", // 群聊时使用
"recvMsgOpt": 0, // 接收消息选项0-接收并通知1-接收但不通知2-不接收
"unreadCount": 0, // 未读消息数
"draftText": "string", // 草稿
"draftTextTime": 0, // 草稿时间
"isPinned": false, // 是否置顶
"isPrivateChat": false, // 是否私聊
"burnDuration": 0, // 阅后即焚时长(秒)
"groupAtType": 0, // 群@类型
"maxSeq": 0, // 最大序列号
"hasReadSeq": 0, // 已读序列号
"updateUnreadCountTime": 0
}
]
}
}
```
### 2. 获取排序后的会话列表
**接口地址**: `POST /conversation/get_sorted_conversation_list`
**请求参数**:
```json
{
"ownerUserID": "string", // 用户ID必填
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
### 3. 获取指定会话
**接口地址**: `POST /conversation/get_conversation`
**请求参数**:
```json
{
"ownerUserID": "string", // 用户ID必填
"conversationID": "string" // 会话ID必填
}
```
### 4. 批量获取会话
**接口地址**: `POST /conversation/get_conversations`
**请求参数**:
```json
{
"ownerUserID": "string", // 用户ID必填
"conversationIDs": ["conv1", "conv2"] // 会话ID列表必填
}
```
### 5. 设置会话
**接口地址**: `POST /conversation/set_conversations`
**请求参数**:
```json
{
"conversations": [
{
"conversationID": "string",
"recvMsgOpt": 0,
"isPinned": false,
"isPrivateChat": false,
"groupAtType": 0,
"draftText": "string",
"draftTextTime": 0,
"burnDuration": 0
}
]
}
```
### 6. 获取增量会话
**接口地址**: `POST /conversation/get_incremental_conversations`
**请求参数**:
```json
{
"ownerUserID": "string", // 用户ID必填
"seq": 100 // 起始序列号(必填)
}
```
### 7. 获取置顶会话ID列表
**接口地址**: `POST /conversation/get_pinned_conversation_ids`
**请求参数**:
```json
{
"ownerUserID": "string" // 用户ID必填
}
```
### 8. 删除会话
**接口地址**: `POST /conversation/delete_conversations`
**请求参数**:
```json
{
"ownerUserID": "string", // 用户ID必填
"conversationIDs": ["conv1", "conv2"] // 会话ID列表必填
}
```
---
## 第三方服务接口
### 1. 更新FCM Token
**接口地址**: `POST /third/fcm_update_token`
**请求参数**:
```json
{
"platform": 1, // 平台ID必填
"fcmToken": "string", // FCM Token必填
"userID": "string" // 用户ID必填
}
```
### 2. 设置应用角标
**接口地址**: `POST /third/set_app_badge`
**请求参数**:
```json
{
"userID": "string", // 用户ID必填
"unreadCount": 10 // 未读数(必填)
}
```
### 3. 上传日志
**接口地址**: `POST /third/logs/upload`
**请求参数**: 文件上传multipart/form-data
### 4. 对象存储 - 初始化分片上传
**接口地址**: `POST /object/initiate_multipart_upload`
**请求参数**:
```json
{
"name": "string", // 对象名称(必填)
"contentType": "string" // 内容类型(选填)
}
```
### 5. 对象存储 - 完成分片上传
**接口地址**: `POST /object/complete_multipart_upload`
**请求参数**:
```json
{
"name": "string", // 对象名称(必填)
"uploadID": "string", // 上传ID必填
"parts": [ // 分片列表(必填)
{
"partNumber": 1,
"etag": "string"
}
]
}
```
### 6. 对象存储 - 获取访问URL
**接口地址**: `POST /object/access_url`
**请求参数**:
```json
{
"name": "string", // 对象名称(必填)
"expires": 3600 // 过期时间(秒,选填)
}
```
---
## 红包接口
详细文档请参考:[红包接口文档](./redpacket-api.md)
### 主要接口
1. **发送红包**: `POST /redpacket/send_redpacket`
2. **领取红包**: `POST /redpacket/receive`
3. **查询红包详情**: `POST /redpacket/get_detail`
---
## 会议接口
详细文档请参考:[会议接口文档](./meeting-api.md)
### 用户端接口
1. **获取会议信息**: `POST /meeting/get_meeting`
2. **获取会议列表**: `POST /meeting/get_meetings_public`
---
## 钱包接口
### 1. 获取钱包列表(管理接口)
**接口地址**: `POST /wallet/get_wallets`
**请求参数**:
```json
{
"pagination": {
"pageNumber": 1,
"showNumber": 20
}
}
```
### 2. 批量更新余额(管理接口)
**接口地址**: `POST /wallet/batch_update_balance`
**请求参数**:
```json
{
"updates": [
{
"userID": "string",
"amount": 10000, // 金额(分)
"changeType": 1 // 变更类型1-增加2-减少
}
]
}
```
---
## 错误码说明
### 通用错误码
| 错误码 | 说明 |
|--------|------|
| 0 | 成功 |
| 500 | 服务器内部错误 |
| 1001 | 参数错误 |
| 1002 | 权限不足 |
| 1003 | 重复键错误 |
| 1004 | 记录不存在 |
### 用户相关错误码
| 错误码 | 说明 |
|--------|------|
| 1101 | 用户ID不存在或未注册 |
| 1102 | 用户已注册 |
### 群组相关错误码
| 错误码 | 说明 |
|--------|------|
| 1201 | 群ID不存在 |
| 1202 | 群ID已存在 |
| 1203 | 尚未加入群组 |
| 1204 | 群组已解散 |
| 1205 | 群组类型不支持 |
| 1206 | 群组申请已处理 |
### 好友相关错误码
| 错误码 | 说明 |
|--------|------|
| 1301 | 不能添加自己为好友 |
| 1302 | 被对方拉黑 |
| 1303 | 不是对方的好友 |
| 1304 | 已经是好友关系 |
### 消息相关错误码
| 错误码 | 说明 |
|--------|------|
| 1401 | 消息已读功能禁用 |
| 1402 | 群成员被禁言 |
| 1403 | 群组被禁言 |
| 1404 | 消息已撤回 |
| 1405 | 消息包含链接(不允许) |
| 1406 | 图片包含二维码(不允许) |
### Token相关错误码
| 错误码 | 说明 |
|--------|------|
| 1501 | Token已过期 |
| 1502 | Token无效 |
| 1503 | Token格式错误 |
| 1504 | Token尚未生效 |
| 1505 | Token未知错误 |
| 1506 | Token被踢出 |
| 1507 | Token不存在 |
### 红包相关错误码
| 错误码 | 说明 |
|--------|------|
| 1801 | 红包已被领完 |
| 1802 | 红包已过期 |
| 1803 | 用户已领取过该红包 |
---
## 注意事项
### 1. 认证
- 除白名单接口外,所有接口都需要在请求头中携带 `token`
- Token通过 `/auth/get_user_token` 接口获取
- Token过期后需要重新获取
### 2. 请求格式
- 所有接口使用 `POST` 方法(除特殊说明外)
- Content-Type: `application/json`
- 请求体为JSON格式
### 3. 响应格式
- 所有接口统一返回格式:`{errCode, errMsg, errDlt, data}`
- `errCode` 为 0 表示成功非0表示失败
- 失败时查看 `errMsg``errDlt` 获取错误详情
### 4. 分页参数
- 分页参数统一格式:
```json
{
"pagination": {
"pageNumber": 1, // 页码从1开始
"showNumber": 20 // 每页数量
}
}
```
### 5. 时间戳
- 所有时间戳均为毫秒级Unix时间戳
- 例如:`1234567890000` 表示 2009-02-13 23:31:30
### 6. 平台ID
- 1: iOS
- 2: Android
- 3: Windows
- 4: OSX
- 5: Web
- 6: 小程序
### 7. 消息类型
- 101: 文本消息
- 102: 图片消息
- 103: 语音消息
- 104: 视频消息
- 105: 文件消息
- 106: @消息
- 107: 位置消息
- 108: 自定义消息
- 109: 引用消息
- 110: 自定义消息(红包等)
### 8. 会话类型
- 1: 单聊
- 2: 群聊
### 9. 群成员角色
- 1: 群主
- 2: 管理员
- 3: 普通成员
### 10. 接收消息选项
- 0: 接收并通知
- 1: 接收但不通知
- 2: 不接收
---
## 接口汇总表
| 模块 | 接口数量 | 主要功能 |
|------|---------|---------|
| 认证 | 3 | 获取token、解析token、强制登出 |
| 用户 | 19 | 注册、更新信息、查询、在线状态等 |
| 好友 | 16 | 添加、删除、查询、黑名单等 |
| 群组 | 17 | 创建、加入、退出、管理成员等 |
| 消息 | 13 | 发送、接收、搜索、撤回等 |
| 会话 | 8 | 获取、设置、删除会话等 |
| 第三方服务 | 6+ | 文件上传、对象存储等 |
| 红包 | 3 | 发送、领取、查询 |
| 会议 | 2 | 查询会议信息 |
| 钱包 | 2 | 查询钱包、更新余额 |
---
## 相关文档
- [红包接口详细文档](./redpacket-api.md)
- [会议接口详细文档](./meeting-api.md)
- [错误码标准](./contrib/error-code.md)
- [API标准](./contrib/api.md)
---
**最后更新时间**: 2025-01-23