# 百度统计集成使用说明 ## 概述 本项目已集成百度统计 API,可以实时获取文章的浏览量(PV)和访客量(UV)数据,并在页面中展示。 ## 功能特性 - ✅ 实时获取百度统计数据 - ✅ 文章页面显示浏览量和访客量 - ✅ 统计数据管理页面 - ✅ 数据缓存机制(5分钟缓存) - ✅ 自动刷新功能 - ✅ 数据导出功能 - ✅ 响应式设计 ## 配置说明 ### 1. 配置文件位置 ``` src/config/analytics.ts ``` ### 2. 主要配置项 ```typescript export const BAIDU_ANALYTICS_CONFIG = { // 访问令牌 - 需要定期更新 accessToken: 'your_access_token_here', // 站点 ID siteId: 'your_site_id_here', // 百度统计站点代码 siteCode: 'your_site_code_here', // 缓存配置 cache: { expiry: 5 * 60 * 1000, // 5分钟缓存 } }; ``` ### 3. 环境变量配置(可选) 在 `.env` 文件中设置: ```env VITE_BAIDU_ACCESS_TOKEN=your_access_token VITE_BAIDU_SITE_ID=your_site_id VITE_BAIDU_SITE_CODE=your_site_code ``` ## 使用方法 ### 1. 在文章页面显示统计数据 ```tsx import { ArticleStatsDisplay } from '@/components/blog/stats-display'; // 在文章组件中使用 ``` ### 2. 显示总体统计数据 ```tsx import { TotalStatsDisplay } from '@/components/blog/stats-display'; // 显示网站总体统计 ``` ### 3. 使用 Hook 获取数据 ```tsx import { useBaiduAnalytics, useArticleStats } from '@/hooks/use-baidu-analytics'; // 获取所有统计数据 const { articleStats, totalStats, loading, error } = useBaiduAnalytics(); // 获取单个文章统计 const { stats, loading, error } = useArticleStats('article-slug'); ``` ## 页面功能 ### 1. 文章详情页 - 在文章元信息区域显示该文章的浏览量和访客量 - 数据来源:百度统计 API - 自动匹配文章 URL ### 2. 统计管理页面 (`/analytics`) - 查看所有文章的统计数据 - 支持时间范围筛选(今天、最近7天、最近30天、全部时间) - 数据导出功能(CSV格式) - 实时刷新功能 ## API 接口说明 ### 百度统计 API 端点 ``` GET https://openapi.baidu.com/rest/2.0/tongji/report/getData ``` ### 请求参数 - `access_token`: 访问令牌 - `site_id`: 站点ID - `method`: visit/toppage/a(受访页面报告) - `metrics`: pv_count,visitor_count(浏览量和访客数) - `start_date`: 开始日期(可选) - `end_date`: 结束日期(可选) ### 响应数据格式 ```json { "result": { "items": [ [ [{"name": "页面URL", "pageId": "页面ID"}], [浏览量, 访客数] ] ] } } ``` ## 数据匹配逻辑 系统通过以下方式匹配文章和统计数据: 1. **URL 匹配**: 检查页面 URL 是否包含 `/article/{articleSlug}` 2. **文章 slug 匹配**: 从 URL 中提取文章标识符 3. **模糊匹配**: 支持 URL 编码的中文标题匹配 ## 缓存机制 - **缓存时间**: 5分钟 - **缓存策略**: 内存缓存,页面刷新后清空 - **自动刷新**: 可配置自动刷新间隔 ## 错误处理 - API 请求失败时显示友好错误信息 - 网络错误时使用缓存数据 - 数据解析错误时返回空结果 ## 性能优化 - 数据缓存减少 API 调用 - 懒加载统计组件 - 并行请求多个数据源 - 防抖处理频繁刷新 ## 注意事项 1. **Access Token 更新**: 百度统计的 access_token 有有效期,需要定期更新 2. **API 限制**: 百度统计 API 有调用频率限制,建议合理使用缓存 3. **数据延迟**: 百度统计数据可能有1-2小时的延迟 4. **URL 匹配**: 确保文章 URL 格式与百度统计中的页面 URL 一致 ## 故障排除 ### 1. 数据不显示 - 检查 access_token 是否有效 - 确认 site_id 是否正确 - 查看浏览器控制台错误信息 ### 2. 数据不匹配 - 检查文章 URL 格式 - 确认百度统计是否正确跟踪页面 - 查看 API 返回的页面列表 ### 3. 性能问题 - 调整缓存时间 - 减少自动刷新频率 - 检查网络连接 ## 更新日志 - **v1.0.0** (2025-09-23): 初始版本,支持基础统计功能 - 百度统计 API 集成 - 文章统计显示组件 - 统计管理页面 - 数据缓存和自动刷新