--- layout: post title: Strava Riding Api 上线 date: 2025-04-10 00:23:01 +0800 category: tech thumb: ARTICLEPICTURES_PATH/strava_logo.webp tags: [strava, OAuth, 骑行] --- 该脚本基于 Strava API v3 获取指定用户当年的所有骑行活动数据,并将其保存为JSON格式 ## 功能特性 Strava Riding Api 只实现了 OAuth 2.0 授权流程的部分自动化,由于技术限制,目前无法实现完全自动化: 已实现部分 - 半自动 OAuth 2.0 授权流程,轻松访问您的 Strava 数据 - 自动获取任意年份的所有骑行记录 - 获取每个活动的完整运动数据 - 智能令牌管理:自动保存和刷新过期的访问令牌 - 数据自动转换:公里、时间、速度单位等数据格式化 - 内置多重容错机制,确保数据获取的可靠性 ## 使用前设置 **重要:** 在使用此脚本前,请确保在Strava开发者平台上正确配置您的应用: 1. 访问 [Strava开发者设置](https://www.strava.com/settings/api) 2. 将以下URL添加到"授权回调域": ``` localhost ``` 注意:只需输入 `localhost` 而不是完整的 `http://localhost:8000` 3. 保存设置 ## 使用方法 1. 安装依赖: ``` yarn install ``` 2. 获取并处理授权码: ``` yarn auth ``` 获取授权后,您会收到一个授权码。将其粘贴到命令行中。 3. 获取骑行数据: ``` yarn start ``` 4. 查看输出的JSON文件,文件名格式为:`strava_data.json` ## 解决认证问题 如果您遇到API相关错误,请尝试以下解决方案: 1. **更新令牌**: ``` yarn auth ``` 重新获取授权并更新令牌 2. **检查API状态**: 访问 [Strava API状态](https://status.strava.com/) 确认服务是否正常 ## 常见问题解决 1. **"protocol mismatch"错误**: - 此问题已在最新版本中解决,使用了原生HTTPS模块发送请求 - 确保在Strava开发者设置中添加了`localhost`作为授权回调域 <br/><br/> 2. **无法获取活动数据**: - 确认您的账户中确实有骑行活动 - 检查筛选条件是否正确(默认只获取"Ride"类型活动) <br/><br/> 3. **API错误或限流**: - Strava API有使用限制(每15分钟100次,每天1000次) - 数据量大时,脚本已添加延迟以避免触发限流 ## 许可证 本项目采用 Mozilla 公共许可证 2.0 版发布 Strava API v3:https://developers.strava.com/docs/reference Strava Riding Api:https://github.com/achuanya/Strava-Riding-Api