天行数据API诊断指南.md 4.1 KB

天行数据API诊断指南

问题症状

在属相测试时,点击"开始测算"后出现以下错误:

zodiac-enhanced.js:66 获取API数据失败: Error: API请求失败

已实施的修复措施

1. 增强的错误日志

  • ✅ 添加了详细的控制台日志输出
  • ✅ 区分网络错误、HTTP错误和API业务错误
  • ✅ 使用emoji图标使日志更易读

2. 改进的降级机制

  • ✅ API调用失败时自动降级到本地数据
  • ✅ 用户仍然可以正常使用功能
  • ✅ 显示友好的提示消息

3. 新增诊断工具

  • testAPIConnection() - 测试API连接
  • diagnoseAPI() - 详细的API诊断

如何使用诊断工具

在浏览器控制台中测试

  1. 打开微信开发者工具
  2. 进入属相测试页面
  3. 打开控制台(Console)
  4. 输入以下代码:

    // 导入诊断工具
    const zodiacEnhanced = require('@/utils/zodiac-enhanced.js')
    
    // 测试API连接
    zodiacEnhanced.default.testAPIConnection().then(result => {
    console.log('测试结果:', result)
    })
    
    // 或者运行完整诊断
    zodiacEnhanced.default.diagnoseAPI().then(diagnostics => {
    console.log('诊断报告:', diagnostics)
    })
    

查看详细日志

现在当你点击"开始测算"时,控制台会显示详细日志:

成功的API调用

🔍 开始调用天行数据API...
请求生肖: 鼠
📡 API响应状态码: 200
📡 API响应数据: {code: 200, result: {...}}
✅ API调用成功,数据: {...}

失败的API调用(自动降级)

🔍 开始调用天行数据API...
请求生肖: 鼠
❌ 网络请求失败: request:fail timeout
❌ 获取API数据失败,降级到本地数据
错误详情: Error: 网络错误: request:fail timeout

常见问题排查

问题1: API Key无效

症状: 看到 "API业务错误 code: 10X" 类似的错误

解决方案:

  1. 检查 config/api-config.js 中的API_KEY
  2. 访问 https://www.tianapi.com/ 获取有效的API Key
  3. 确认API Key有足够的调用次数

问题2: 网络超时

症状: 看到 "网络错误: request:fail timeout"

解决方案:

  • 已将超时时间从5秒增加到8秒
  • 检查网络连接
  • 确认微信开发者工具的网络设置

问题3: API端点不正确

症状: 看到 "HTTP错误: 404"

可能的端点:

// 在 config/api-config.js 中尝试不同的端点
ENDPOINTS: {
  zodiac: '/zodiac/index',     // 方案1
  // 或者
  zodiac: '/sxys/index',       // 方案2(生肖运势拼音缩写)
  // 或者
  zodiac: '/shengxiao/index',  // 方案3
}

当前行为

✅ 正常情况

  1. API调用成功 → 显示天行数据API的专业运势数据
  2. 数据来源标记为 "天行数据专业API"
  3. 显示实时更新时间

✅ 降级情况(API失败)

  1. API调用失败 → 自动使用本地数据
  2. 显示提示 "使用本地数据"
  3. 数据来源标记为 "本地数据(API暂不可用)"
  4. 功能仍然可以正常使用

验证修复是否生效

  1. 重新编译小程序
  2. 进入属相测试页面
  3. 选择生日并点击"开始测算"
  4. 观察以下内容:

查看控制台日志

  • 应该看到带有emoji的详细日志
  • 如果API失败,应该看到降级提示

查看页面显示

  • 无论API是否成功,都应该能看到测算结果
  • 查看底部的"数据来源"标签
    • 绿色背景 = API数据成功
    • 蓝色背景 = 本地数据(降级)

后续建议

短期方案

  • ✅ 当前已实现自动降级,用户体验不受影响
  • 功能完全可用,只是数据来源不同

长期方案

  1. 验证API Key: 确保天行数据API Key有效且有足够配额
  2. 确认API端点: 联系天行数据客服确认生肖运势的正确端点
  3. 考虑备用方案:
    • 建立自己的运势数据库
    • 接入其他运势API作为备用

技术支持

如果问题仍然存在,请提供以下信息:

  1. 控制台的完整错误日志
  2. diagnoseAPI() 的输出结果
  3. 网络环境(开发环境/生产环境)

修复状态: ✅ 已完成

  • 增强错误日志
  • 改进降级机制
  • 添加诊断工具
  • 功能可正常使用(降级到本地数据)