Files
zhini_im/api文档.txt
rw0067680 c01808ac21 first commit
Change-Id: Ib7c2ab10a2562044fcaf9879388a6cbc1db6ac61
2025-12-23 10:00:49 +08:00

524 lines
13 KiB
Plaintext
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.
# Android IM即时通讯应用 - API接口文档
## 项目概述
本文档详细记录了Android IM即时通讯应用中使用的所有API接口包括HTTP API、IM服务API、第三方服务API等。
## 一、服务器配置
### 1.1 主要服务器地址
- **IM服务器**: `im.xunpaisoft.com` (野火IM服务器)
- **应用服务器**: `https://xingyao.xunpaisoft.com` (业务API服务器)
- **文件服务器**: `https://qn.xunpaisoft.com/` (七牛云存储)
- **分享链接**: `https://web.xunpaisoft.com/xingyao/share?value=`
### 1.2 音视频通话配置
- **TURN服务器**: `turn:dev-turn.xunpaisoft.com:3478`
- **用户名**: `xingyaoturn`
- **密码**: `xingyaoturn`
### 1.3 组织通讯录服务
- **地址**: `https://xingyao.xunpaisoft.com`
## 二、HTTP API接口
### 2.1 用户认证相关
#### 2.1.1 获取IM Token
- **接口**: `POST /api/user/getImToken`
- **功能**: 获取IM连接所需的Token
- **请求参数**:
```json
{
"platform": 2,
"clientId": "客户端ID"
}
```
- **响应**: 返回IM Token用于连接IM服务器
#### 2.1.2 密码登录
- **接口**: `POST /api/user/passwordLogin`
- **功能**: 用户密码登录
- **请求参数**:
```json
{
"mobile": "手机号",
"password": "密码"
}
```
#### 2.1.3 短信验证码登录
- **接口**: `POST /api/user/smsLogin`
- **功能**: 短信验证码登录
- **请求参数**:
```json
{
"mobile": "手机号",
"code": "验证码"
}
```
#### 2.1.4 发送短信验证码
- **接口**: `POST /api/user/sendSmsCode`
- **功能**: 发送短信验证码
- **请求参数**:
```json
{
"mobile": "手机号"
}
```
### 2.2 用户信息管理
#### 2.2.1 获取用户信息
- **接口**: `POST /api/user/getUserInfo`
- **功能**: 获取用户详细信息
- **请求参数**:
```json
{
"user_id": "用户ID",
"is_friend": "是否好友(0/1)"
}
```
#### 2.2.2 更新用户资料
- **接口**: `POST /api/user/profile`
- **功能**: 修改用户个人信息
- **请求参数**:
```json
{
"field": "字段名",
"value": "字段值"
}
```
#### 2.2.3 获取用户互动数据
- **接口**: `POST /api/user/interactiveData`
- **功能**: 获取粉丝、关注、点赞数
- **请求参数**:
```json
{
"user_id": "用户ID"
}
```
#### 2.2.4 获取互动列表
- **接口**: `POST /api/user/interactiveList`
- **功能**: 获取粉丝列表/关注列表
- **请求参数**:
```json
{
"type": "类型(follow/fans)",
"page": "页码",
"limit": "每页数量"
}
```
### 2.3 好友关系管理
#### 2.3.1 关注用户
- **接口**: `POST /api/user/follow`
- **功能**: 关注用户(发送好友请求)
- **请求参数**:
```json
{
"target_user_id": "目标用户ID",
"reason": "申请理由"
}
```
#### 2.3.2 取消关注
- **接口**: `POST /api/user/unfollow`
- **功能**: 取消关注用户(删除好友)
- **请求参数**:
```json
{
"target_user_id": "目标用户ID"
}
```
#### 2.3.3 设置好友备注
- **接口**: `POST /api/user/friendSetAlias`
- **功能**: 设置好友备注名
- **请求参数**:
```json
{
"target_user_id": "目标用户ID",
"alias": "备注名"
}
```
### 2.4 社交功能API
#### 2.4.1 发布动态
- **接口**: `POST /api/post/post`
- **功能**: 发布朋友圈动态
- **请求参数**:
```json
{
"content": "文字内容",
"images": "图片列表",
"videos": "视频列表",
"location": "位置信息"
}
```
#### 2.4.2 获取动态列表
- **接口**: `POST /api/post/postList`
- **功能**: 获取广场/朋友圈动态列表
- **请求参数**:
```json
{
"type": "类型(guangchang/guanzhu)",
"page": "页码",
"limit": "每页数量"
}
```
#### 2.4.3 点赞动态
- **接口**: `POST /api/post/like`
- **功能**: 点赞/取消点赞动态
- **请求参数**:
```json
{
"post_id": "动态ID",
"action": "操作(like/unlike)"
}
```
#### 2.4.4 收藏动态
- **接口**: `POST /api/post/collection`
- **功能**: 收藏/取消收藏动态
- **请求参数**:
```json
{
"post_id": "动态ID",
"action": "操作(collect/uncollect)"
}
```
#### 2.4.5 评论动态
- **接口**: `POST /api/post/comment`
- **功能**: 评论动态
- **请求参数**:
```json
{
"post_id": "动态ID",
"content": "评论内容",
"parent_id": "父评论ID(可选)"
}
```
#### 2.4.6 获取评论列表
- **接口**: `POST /api/post/commentsList`
- **功能**: 获取动态评论列表
- **请求参数**:
```json
{
"post_id": "动态ID",
"page": "页码",
"limit": "每页数量"
}
```
#### 2.4.7 删除动态
- **接口**: `POST /api/post/postDelete`
- **功能**: 删除朋友圈动态
- **请求参数**:
```json
{
"post_id": "动态ID"
}
```
### 2.5 群组管理API
#### 2.5.1 获取群公告
- **接口**: `POST /api/manage/getNotice`
- **功能**: 获取群公告信息
- **请求参数**:
```json
{
"group_id": "群组ID"
}
```
#### 2.5.2 设置群公告
- **接口**: `POST /api/manage/createGroupNotice`
- **功能**: 创建/更新群公告
- **请求参数**:
```json
{
"group_id": "群组ID",
"title": "公告标题",
"content": "公告内容"
}
```
### 2.6 相册管理API
#### 2.6.1 群相册管理
- **创建群相册**: `POST /api/image/createAlbum`
- **编辑群相册**: `POST /api/image/editAlbum`
- **删除群相册**: `POST /api/image/deleteAlbum`
- **获取群相册列表**: `POST /api/image/getAlbums`
- **上传到群相册**: `POST /api/image/uploadToGroup`
- **删除群相册图片**: `POST /api/image/delGroupAlbumImages`
- **获取群相册图片**: `POST /api/image/groupImages`
#### 2.6.2 用户相册管理
- **创建用户相册**: `POST /api/image/createUserAlbum`
- **编辑用户相册**: `POST /api/image/editUserAlbum`
- **删除用户相册**: `POST /api/image/deleteUserAlbum`
- **获取用户相册列表**: `POST /api/image/getUserAlbums`
- **上传到用户相册**: `POST /api/image/uploadToUserAlbum`
- **删除用户相册图片**: `POST /api/image/delUserAlbumImages`
- **获取用户相册图片**: `POST /api/image/userAlbumImages`
### 2.7 文件上传API
#### 2.7.1 获取七牛Token
- **接口**: `GET /api/common/getQNToken`
- **功能**: 获取七牛云上传Token
- **响应**: 返回七牛云上传凭证
#### 2.7.2 上传文件
- **接口**: `POST /api/common/upload`
- **功能**: 上传文件到服务器
- **请求参数**: 文件流数据
### 2.8 其他功能API
#### 2.8.1 意见反馈
- **接口**: `POST /api/other/sendSuggestion`
- **功能**: 提交意见反馈
- **请求参数**:
```json
{
"content": "反馈内容",
"contact": "联系方式"
}
```
#### 2.8.2 投诉举报
- **接口**: `POST /api/other/sendReport`
- **功能**: 提交投诉举报
- **请求参数**:
```json
{
"target_id": "被举报对象ID",
"type": "举报类型",
"reason": "举报原因",
"content": "详细说明"
}
```
#### 2.8.3 获取配置项
- **接口**: `POST /api/other/getOptions`
- **功能**: 获取应用配置项
- **响应**: 返回应用配置信息
#### 2.8.4 阅后即焚设置
- **获取状态**: `POST /api/manage/getBurnAfterReadingStatus`
- **设置状态**: `POST /api/manage/setBurnAfterReading`
- **功能**: 管理阅后即焚功能
#### 2.8.5 账号管理
- **修改手机号**: `POST /api/user/changemobile`
- **注销账号**: `POST /api/user/resignAccount`
## 三、IM服务API
### 3.1 连接管理
- **服务器地址**: `im.xunpaisoft.com`
- **连接方式**: WebSocket
- **认证方式**: Token认证
### 3.2 消息类型
- **文本消息**: TextMessageContent
- **图片消息**: ImageMessageContent
- **语音消息**: SoundMessageContent
- **视频消息**: VideoMessageContent
- **文件消息**: FileMessageContent
- **位置消息**: LocationMessageContent
- **引用消息**: QuoteMessageContent
- **撤回消息**: RecallMessageContent
- **会议邀请**: ConferenceInviteMessageContent
- **会议模式变更**: ConferenceChangeModeContent
- **会议命令**: ConferenceCommandContent
### 3.3 会话管理
- **单聊**: ConversationType.Single
- **群聊**: ConversationType.Group
- **频道**: ConversationType.Channel
- **聊天室**: ConversationType.ChatRoom
### 3.4 消息状态
- **发送中**: MessageStatus.Sending
- **已发送**: MessageStatus.Sent
- **已送达**: MessageStatus.Delivered
- **已读**: MessageStatus.Read
- **发送失败**: MessageStatus.Send_Failure
## 四、音视频通话API
### 4.1 通话类型
- **单人通话**: SingleCallActivity
- **多人通话**: MultiCallActivity
- **会议通话**: ConferenceActivity
### 4.2 通话控制
- **发起通话**: AVEngineKit.startCall()
- **接听通话**: AVEngineKit.answerCall()
- **挂断通话**: AVEngineKit.endCall()
- **静音控制**: session.muteAudio()
- **摄像头控制**: session.muteVideo()
- **屏幕共享**: session.startScreenShare()
### 4.3 会议管理
- **加入会议**: AVEngineKit.joinConference()
- **离开会议**: AVEngineKit.leaveConference()
- **会议模式切换**: ConferenceManager.changeMode()
## 五、第三方服务API
### 5.1 七牛云存储
- **SDK**: qiniu-android-sdk
- **功能**: 文件上传、图片处理
- **配置**:
```java
// 自动识别上传区域
AutoZone zone = new AutoZone();
// 分片上传阈值4MB
.putThreshold(4 * 1024 * 1024)
// 开启分片上传
.useConcurrentResumeUpload(true)
```
### 5.2 腾讯地图服务
- **SDK**: tencent-map-vector-sdk
- **功能**: 地图显示、位置服务、路径规划
- **配置**:
```java
// 地图SDK版本: 6.3.0.250311.940c5007.146962199
// 基础库版本: 0.5.7.fc32fe3
// 组件库版本: 1.0.10
```
### 5.3 推送服务
- **小米推送**: MiPush_SDK_Client_3_6_9.jar
- **华为推送**: HMS Core
- **魅族推送**: Flyme推送
- **VIVO推送**: vivo_pushsdk_v2.3.1.jar
- **OPPO推送**: OPPO推送服务
- **Firebase推送**: firebase-messaging
### 5.4 图片处理
- **图片选择**: PictureSelector v3.0.9
- **图片压缩**: Luban 1.1.8
- **图片裁剪**: UCrop
- **图片查看**: PhotoView
## 六、网络请求配置
### 6.1 HTTP客户端配置
- **超时时间**: 30秒
- **请求头**:
- `token`: 用户认证Token
- `Content-Type`: application/json
- **响应格式**: JSON
### 6.2 请求拦截器
- **认证拦截**: 自动添加Token到请求头
- **响应拦截**: 统一处理响应结果
- **错误处理**: 统一错误码处理
### 6.3 分页配置
- **默认每页数量**: 20条
- **最大会话数**: 1000条
## 七、安全配置
### 7.1 数据加密
- **传输加密**: HTTPS
- **Token存储**: KeyStore加密存储
- **敏感信息**: 本地加密存储
### 7.2 权限控制
- **动态权限申请**: 运行时申请必要权限
- **权限说明**: 详细说明权限用途
- **降级处理**: 权限被拒绝时的替代方案
## 八、错误码说明
### 8.1 通用错误码
- **-1**: 网络错误
- **0**: 成功
- **1**: 参数错误
- **2**: 认证失败
- **3**: 权限不足
### 8.2 业务错误码
- **1001**: 用户不存在
- **1002**: 密码错误
- **1003**: 验证码错误
- **2001**: 好友关系不存在
- **2002**: 已经是好友
- **3001**: 动态不存在
- **3002**: 无权限操作
## 九、API调用示例
### 9.1 用户登录
```java
// 密码登录
AppService.Instance().passwordLogin(mobile, password, new AppService.LoginCallback() {
@Override
public void onUiSuccess(LoginResult loginResult) {
// 登录成功保存Token
String token = loginResult.getUserinfo().getToken();
// 连接IM服务器
ChatManagerHolder.gChatManager.connect(userId, token);
}
@Override
public void onUiFailure(int code, String msg) {
// 登录失败处理
}
});
```
### 9.2 发送消息
```java
// 发送文本消息
Message message = new Message();
message.conversation = conversation;
message.content = new TextMessageContent("Hello World");
ChatManager.Instance().sendMessage(message, null);
```
### 9.3 文件上传
```java
// 上传文件到七牛云
QiniuUploadFile.uploadFile(key, token, file, new UploadCallBack() {
@Override
public void result(boolean success, String key) {
if (success) {
// 上传成功使用返回的key
}
}
});
```
## 十、总结
本应用集成了丰富的API接口包括
- **用户认证**: 多种登录方式支持
- **即时通讯**: 完整的IM功能
- **社交功能**: 朋友圈、动态发布
- **音视频通话**: 单人、多人、会议通话
- **文件存储**: 七牛云存储服务
- **地图服务**: 腾讯地图集成
- **推送服务**: 多厂商推送支持
所有API都采用RESTful设计支持JSON格式数据交换具备完善的错误处理和安全机制。