---
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`作为授权回调域
2. **无法获取活动数据**:
- 确认您的账户中确实有骑行活动
- 检查筛选条件是否正确(默认只获取"Ride"类型活动)
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