# Gmail模块API接口文档 - Apifox测试版 ## 1. 认证管理 ### 1.1 启动OAuth授权 - **接口URL**: `/api/gmail/auth/initiate/` - **请求方式**: `POST` - **接口描述**: 生成Google OAuth授权URL,供用户访问并获取授权码 #### 请求参数 ```json { "client_secret_json": "String (必填,二选一): Google OAuth客户端凭证(JSON格式字符串)", "client_secret_file": "File (必填,二选一): 上传的客户端凭证JSON文件" } ``` #### 响应参数 ```json { "auth_url": "String: 用户需访问的授权URL", "status": "String: 接口调用状态" } ``` #### 接口作用 生成Google OAuth授权链接,用户通过访问此链接授予应用访问Gmail账户的权限,并获取授权码用于后续步骤。 --- ### 1.2 完成OAuth授权 - **接口URL**: `/api/gmail/auth/complete/` - **请求方式**: `POST` - **接口描述**: 使用授权码完成OAuth流程,获取并保存Gmail访问凭证 #### 请求参数 ```json { "client_secret_json": "String (必填): Google OAuth客户端凭证(JSON格式)", "auth_code": "String (必填): 用户从授权URL获得的授权码" } ``` #### 响应参数 ```json { "id": "Integer: 凭证ID", "email": "String: 关联的Gmail邮箱地址", "is_default": "Boolean: 是否为默认账户", "created_at": "DateTime: 创建时间", "status": "String: 操作状态" } ``` #### 接口作用 完成OAuth2.0授权流程,将用户的授权码转换为访问令牌,并将凭证保存到系统中,以便后续API调用。 --- ### 1.3 获取Gmail凭证列表 - **接口URL**: `/api/gmail/credentials/` - **请求方式**: `GET` - **接口描述**: 获取系统中所有已授权的Gmail账户凭证列表 #### 响应参数 ```json { "results": [ { "id": "Integer: 凭证ID", "email": "String: Gmail邮箱地址", "is_default": "Boolean: 是否为默认账户", "created_at": "DateTime: 创建时间" } ], "count": "Integer: 总记录数" } ``` #### 接口作用 列出系统中所有已授权的Gmail账户,便于用户查看和管理多个Gmail账户。 --- ### 1.4 设置默认Gmail账户 - **接口URL**: `/api/gmail/credentials/{id}/set_default/` - **请求方式**: `POST` - **接口描述**: 将指定ID的Gmail账户设置为默认账户 #### 路径参数 ```json { "id": "Integer (必填): 凭证ID" } ``` #### 响应参数 ```json { "status": "String: 操作状态", "message": "String: 操作结果信息" } ``` #### 接口作用 设置系统默认使用的Gmail账户,当未指定账户时,系统操作将使用此默认账户。 --- ## 2. 对话管理 ### 2.1 创建Gmail对话 - **接口URL**: `/api/gmail/conversations/` - **请求方式**: `POST` - **接口描述**: 创建并保存用户与特定联系人的邮件对话 #### 请求参数 ```json { "user_email": "String (必填): 用户Gmail邮箱", "influencer_email": "String (必填): 对话方Gmail邮箱", "kb_id": "Integer (可选): 关联的知识库ID" } ``` #### 响应参数 ```json { "conversation_id": "Integer: 创建的会话ID", "user_email": "String: 用户Gmail邮箱", "influencer_email": "String: 对话方Gmail邮箱", "created_at": "DateTime: 创建时间", "status": "String: 操作状态" } ``` #### 接口作用 创建并保存特定邮箱之间的对话关系,为后续邮件往来、自动回复和内容分析建立基础。 --- ### 2.2 获取对话列表 - **接口URL**: `/api/gmail/conversations/` - **请求方式**: `GET` - **接口描述**: 获取所有保存的Gmail邮件对话 #### 查询参数 ```json { "user_email": "String (可选): 筛选特定用户的对话", "influencer_email": "String (可选): 筛选与特定联系人的对话" } ``` #### 响应参数 ```json { "results": [ { "id": "Integer: 对话ID", "user_email": "String: 用户Gmail邮箱", "influencer_email": "String: 对话方Gmail邮箱", "last_message_time": "DateTime: 最后消息时间", "message_count": "Integer: 消息数量" } ], "count": "Integer: 总记录数" } ``` #### 接口作用 查询系统中保存的所有Gmail对话,可通过筛选参数查找特定用户或联系人的对话记录。 --- ### 2.3 获取对话摘要 - **接口URL**: `/api/gmail/conversations/summary/{conversation_id}/` - **请求方式**: `GET` - **接口描述**: 获取特定对话的AI生成摘要信息 #### 路径参数 ```json { "conversation_id": "Integer (必填): 对话ID" } ``` #### 响应参数 ```json { "conversation_id": "Integer: 对话ID", "summary": "String: AI生成的对话摘要", "key_points": ["String: 关键点1", "String: 关键点2"], "sentiment": "String: 情感分析结果", "last_updated": "DateTime: 最后更新时间" } ``` #### 接口作用 使用AI技术自动分析对话内容,生成对话摘要、提取关键点并进行情感分析,帮助用户快速了解对话内容和进展。 --- ## 3. 邮件管理 ### 3.1 发送邮件 - **接口URL**: `/api/gmail/send/` - **请求方式**: `POST` - **接口描述**: 通过指定Gmail账户发送邮件 #### 请求参数 ```json { "email": "String (必填): 发件人Gmail邮箱", "to": "String (必填): 收件人邮箱,多个收件人用逗号分隔", "subject": "String (必填): 邮件主题", "body": "String (必填): 邮件正文内容(支持HTML)", "cc": "String (可选): 抄送邮箱,多个用逗号分隔", "bcc": "String (可选): 密送邮箱,多个用逗号分隔", "attachments": ["String: 附件ID1", "String: 附件ID2"] } ``` #### 响应参数 ```json { "message_id": "String: 发送的邮件ID", "thread_id": "String: Gmail线程ID", "status": "String: 发送状态", "timestamp": "DateTime: 发送时间戳" } ``` #### 接口作用 使用已授权的Gmail账户发送邮件,支持HTML内容、抄送、密送和附件,返回发送状态和邮件ID。 --- ### 3.2 获取附件列表 - **接口URL**: `/api/gmail/attachments/{conversation_id}/` - **请求方式**: `GET` - **接口描述**: 获取特定对话中的所有附件 #### 路径参数 ```json { "conversation_id": "Integer (必填): 对话ID" } ``` #### 响应参数 ```json { "results": [ { "id": "String: 附件ID", "filename": "String: 文件名", "size": "Integer: 文件大小(字节)", "mime_type": "String: MIME类型", "message_id": "String: 所属邮件ID", "created_at": "DateTime: 创建时间" } ], "count": "Integer: 总记录数" } ``` #### 接口作用 检索特定对话中的所有邮件附件信息,包括文件名、大小和类型,便于管理和下载附件。 --- ## 4. 推送通知 ### 4.1 设置Gmail推送通知 - **接口URL**: `/api/gmail/notifications/setup/` - **请求方式**: `POST` - **接口描述**: 为指定Gmail账户设置实时邮件推送通知 #### 请求参数 ```json { "email": "String (必填): 要监听的Gmail邮箱地址", "topic_name": "String (可选): 自定义Pub/Sub主题名称" } ``` #### 响应参数 ```json { "status": "String: 设置状态", "topic": "String: Pub/Sub主题名称", "expiration": "DateTime: 通知过期时间", "message": "String: 操作结果信息" } ``` #### 接口作用 使用Google Pub/Sub为Gmail账户设置实时通知,当有新邮件时,系统会接收到推送通知,从而实现邮件的实时处理。 --- ### 4.2 接收Gmail推送通知 - **接口URL**: `/api/gmail/webhook/` - **请求方式**: `POST` - **接口描述**: 接收Google Pub/Sub推送的Gmail新邮件通知 #### 请求参数 ```json { "message": { "data": "String (必填): Base64编码的通知数据", "attributes": "Object (可选): 消息属性" }, "subscription": "String (必填): 订阅名称" } ``` #### 响应参数 ```json { "status": "String: 处理状态", "received": "Boolean: 是否成功接收" } ``` #### 接口作用 作为Webhook端点接收Google Pub/Sub推送的Gmail新邮件通知,解析通知内容并触发相应的处理逻辑,如自动回复和更新对话。 --- ## 5. 自动回复功能 ### 5.1 设置对话目标 - **接口URL**: `/api/gmail/goals/` - **请求方式**: `POST` - **接口描述**: 为特定对话设置AI自动回复的目标 #### 请求参数 ```json { "conversation_id": "Integer (必填): 对话ID", "goal_description": "String (必填): 目标描述文本", "priority": "Integer (可选): 优先级(1-5)", "auto_reply": "Boolean (可选): 是否启用自动回复" } ``` #### 响应参数 ```json { "id": "Integer: 目标ID", "conversation_id": "Integer: 对话ID", "goal_description": "String: 目标描述", "priority": "Integer: 优先级", "auto_reply": "Boolean: 是否启用自动回复", "created_at": "DateTime: 创建时间", "status": "String: 操作状态" } ``` #### 接口作用 为指定的Gmail对话设置AI处理目标,系统会根据目标生成推荐回复或自动回复邮件,帮助用户实现特定的沟通目标。 --- ### 5.2 获取对话目标列表 - **接口URL**: `/api/gmail/goals/` - **请求方式**: `GET` - **接口描述**: 获取所有设置的对话目标 #### 查询参数 ```json { "conversation_id": "Integer (可选): 筛选特定对话的目标", "active": "Boolean (可选): 筛选活跃/非活跃目标" } ``` #### 响应参数 ```json { "results": [ { "id": "Integer: 目标ID", "conversation_id": "Integer: 对话ID", "goal_description": "String: 目标描述", "priority": "Integer: 优先级", "auto_reply": "Boolean: 是否启用自动回复", "created_at": "DateTime: 创建时间" } ], "count": "Integer: 总记录数" } ``` #### 接口作用 获取系统中设置的所有对话目标,可通过参数筛选特定对话的目标或活跃/非活跃目标。 --- ### 5.3 获取推荐回复 - **接口URL**: `/api/gmail/recommended-reply/` - **请求方式**: `POST` - **接口描述**: 获取针对特定对话的AI推荐回复内容 #### 请求参数 ```json { "conversation_id": "Integer (必填): 对话ID", "last_message_id": "String (可选): 最后接收的邮件ID", "custom_instructions": "String (可选): 自定义回复指示" } ``` #### 响应参数 ```json { "goal": { "id": "Integer: 目标ID", "description": "String: 目标描述" }, "conversation_summary": "String: 对话摘要", "last_message": { "sender": "String: 发送者", "subject": "String: 主题", "content": "String: 内容摘要" }, "recommended_reply": "String: AI推荐的回复内容", "alternative_replies": ["String: 备选回复1", "String: 备选回复2"] } ``` #### 接口作用 基于对话历史、设定目标和最新邮件内容,使用AI生成推荐回复,帮助用户快速回应邮件并实现沟通目标。 --- ## 使用说明 1. **授权流程**: - 先调用"启动OAuth授权"接口获取授权URL - 用户访问URL并获取授权码 - 调用"完成OAuth授权"接口保存Gmail账户凭证 2. **实时通知设置**: - 授权成功后调用"设置Gmail推送通知"接口 - 确保webhook端点可从公网访问 3. **自动回复流程**: - 创建对话并设置目标 - 系统接收新邮件推送通知 - 自动分析内容并生成回复 - 根据设置决定是推荐回复还是自动回复