# 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