# 百家号刷新功能 - API 接口实现 ## 概述 百家号的账号刷新功能已完全使用 API 接口实现,不再依赖无头浏览器,提高了刷新速度和稳定性。 ## API 接口 ### 1. 账号基本信息接口 **接口地址**:`https://baijiahao.baidu.com/builder/app/appinfo` **返回数据**: - `data.user.name` - 账号名称 - `data.user.app_id` - 百家号 ID - `data.user.avatar` - 头像 URL - `data.user.userid` - 用户 ID - `data.user.status` - 账号状态 ### 2. 粉丝数接口 **接口地址**:`https://baijiahao.baidu.com/cms-ui/rights/growth/get_info` **返回数据**: - `data.total_fans` - 粉丝总数 ### 3. 作品列表接口 **接口地址**:`https://baijiahao.baidu.com/pcui/article/lists` **查询参数**: - `currentPage` - 当前页码 - `pageSize` - 每页数量(默认 20) - `search` - 搜索关键词(可选) - `type` - 作品类型(可选) **返回数据**: - `data.list` - 作品列表 - `data.total` - 作品总数 ## 实现逻辑 ### 刷新流程 1. **获取账号基本信息** - 调用 appinfo 接口 - 获取账号名称、ID、头像 - 如果失败,抛出错误 2. **获取粉丝数**(非关键) - 调用 growth info 接口 - 获取粉丝总数 - 如果失败,记录警告但继续 3. **获取作品列表**(分页) - 从第 1 页开始 - 每页 20 个作品 - 最多获取 10 页(200 个作品) - 如果某页失败,停止获取 ### 错误处理 - **appinfo 失败**:抛出错误,刷新失败 - **growth info 失败**:记录警告,粉丝数为 0 - **作品列表失败**:停止分页,使用已获取的数据 ## 改进内容 ### 1. 更详细的日志 ``` [Baijiahao API] Step 1: Fetching appinfo... [Baijiahao API] appinfo response: errno=0, errmsg=success [Baijiahao API] Got account info: name=xxx, id=bjh_xxx, avatar=https://... [Baijiahao API] Step 2: Fetching growth info... [Baijiahao API] Got fans count: 1234 [Baijiahao API] Step 3: Fetching works list... [Baijiahao API] Fetching works page 1... [Baijiahao API] Got 20 works on page 1, total: 45 [Baijiahao API] Successfully fetched account info: name=xxx, fans=1234, works=45 ``` ### 2. 更好的错误处理 - 检查 HTTP 状态码 - 检查 API 返回的 errno - 区分关键错误和非关键错误 - 保留已获取的部分数据 ### 3. 头像 URL 处理 - 自动补全相对路径(`//pic.xxx` -> `https://pic.xxx`) - 支持完整 URL ### 4. 分页优化 - 记录总作品数 - 智能停止(当前页少于 pageSize) - 防止无限循环(最多 10 页) ## 使用方法 刷新功能会自动使用 API 接口,无需额外配置。 ### 手动刷新 在账号管理页面点击"刷新"按钮即可。 ### 批量刷新 点击"刷新所有"按钮可以批量刷新所有账号。 ## 性能对比 | 方式 | 速度 | 稳定性 | 资源消耗 | |------|------|--------|---------| | 无头浏览器 | 慢(10-30秒) | 中等 | 高 | | API 接口 | 快(1-3秒) | 高 | 低 | ## 注意事项 1. **Cookie 有效性**:确保 Cookie 未过期 2. **网络稳定性**:API 请求需要稳定的网络 3. **作品数量**:最多获取 200 个作品(10 页) 4. **错误重试**:如果失败,可以再次点击刷新 ## 故障排除 ### 问题:刷新失败,提示"appinfo API error" **原因**:Cookie 可能已过期或无效 **解决**:重新登录该账号 ### 问题:粉丝数为 0 **原因**:growth info 接口获取失败(非关键) **解决**:可以忽略,或稍后再次刷新 ### 问题:作品数不完整 **原因**: - 作品总数超过 200 个(只获取前 200 个) - 某页获取失败 **解决**: - 如果作品很多,这是正常的 - 如果作品很少但显示不完整,可以再次刷新