strava-python

🏃 交互式 Strava 运动数据管家

基于成熟 stravalib 库的 Strava 数据查询工具,通过交互式向导完成 OAuth 认证,安全便捷地获取个人运动活动与统计数据。

收藏
6k
安装
1.6k
版本
v1.0.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

strava-python 是一款面向 Strava 运动数据查询的 Python 技能,通过 OpenClaw 平台提供交互式数据获取能力。用户需先运行 setup.py 完成 Strava API 应用的创建与 OAuth 认证流程,凭据自动保存至本地 ~/.strava_credentials.json。核心功能通过 strava_control.py 实现,支持三类查询::recent 获取近期活动列表、、stats 输出周/月度统计、、last 查看最近一条运动记录。整个流程无需手动编辑 JSON 配置文件,降低了非技术用户的使用门槛。

显著优点

交互式配置体验:相比同类基于 curl 的技能需要手动配置 API 密钥,本技能提供完整的向导式 setup 脚本,自动引导用户完成 Strava 开发者应用注册、授权回调设置和令牌获取,显著降低配置错误率。

依赖成熟可靠:核心依赖 stravalib 是 Strava 官方认可的 Python SDK,社区维护活跃、文档完善,API 封装规范,避免了直接处理 HTTP 请求和 OAuth 流程的复杂性。

数据本地化存储:用户敏感凭据(access_token、refresh_token、client_secret)仅保存在用户主目录的本地 JSON 文件,无云端上传或第三方服务器交互,隐私可控性强。

权限申请透明:SKILL.md 明确声明所需权限范围(read、activity:read_all 等),与只读查询功能完全匹配,无过度授权风险。

潜在缺点与局限性

来源可信度限制:作为 openclaw 社区组织的 T3 级贡献,缺乏知名企业或基金会的背书,对来源可信度要求极高的企业环境可能不适用。

API 速率限制约束:Strava 官方限制 100 请求/15 分钟、1000 请求/天,无法满足大规模数据抓取或高频实时监控场景。

功能只读受限:当前仅支持查询操作,无法创建、修改或删除活动,对于需要数据回写的自动化工作流不适用。

Python 环境依赖:要求预装 Python 3.7+ 和 pip 包管理器,在部分精简环境或容器化部署中可能增加配置成本。

适合的目标群体

  • 个人运动爱好者:希望快速通过自然语言查询自己的 Strava 数据,无需学习 API 文档
  • 健身数据分析师:需要定期导出运动统计进行个人表现追踪
  • OpenClaw/Claude 生态用户:寻求与 AI 助手集成的运动数据交互方案
  • 轻量级开发者:需要基于 Strava 数据构建个人自动化工具,但不愿从零处理 OAuth 流程

使用风险

凭据泄露风险~/.strava_credentials.json 包含完整 API 访问令牌,若文件权限配置不当或在共享环境使用,可能导致账户数据被未授权访问。建议手动设置 600 权限并避免版本控制提交。

令牌失效处理:Strava access_token 每 6 小时过期,依赖 refresh_token 自动续期。若长期未使用导致 refresh_token 失效,需重新运行 setup 流程。

外部依赖变更:stravalib 库若发布不兼容更新,可能影响功能稳定性。建议通过 requirements.txt 锁定版本。

网络可用性依赖:所有数据查询依赖 Strava 官方 API 服务可用性,无法离线使用。

安全解读

核心功能

strava-python 是一款面向运动爱好者的 Strava 数据查询工具,通过 Python 官方 SDK(stravalib)与 Strava API 交互,支持获取近期活动、周/月统计数据及最新锻炼记录。区别于其他基于 curl 的手动配置方案,该 skill 提供交互式 OAuth 引导,大幅降低接入门槛。

显著优点

1. 官方SDK保障:底层依赖 Strava 官方维护的 stravalib 库,API 调用规范、错误处理完善,避免自行拼接 HTTP 请求的兼容性问题
2. 安全架构清晰:静态分析得分 95/100,无 eval/exec/os.system 等危险函数,无硬编码密钥,凭证仅本地存储于 ~/.strava_credentials.json

3. 隐私合规到位:遵循 GDPR 数据最小化原则,OAuth 授权流程完整,所有数据传输强制 TLS 1.2+

4. 轻量易维护:仅 434 行代码,6 个文件,无冗余依赖,适合个人开发者学习与二次开发

潜在局限

  • 来源可信度T3:由 OpenClaw 社区个人开发者维护,虽行为一致但缺乏组织级背书
  • API 限流约束:Strava 免费额度为 100 请求/15 分钟、1000/日,高频自动化场景需做限流处理
  • 功能边界明确:仅支持读取个人数据,无法写入或修改活动记录

适合人群

  • 希望用自然语言快速查询 Strava 数据的跑者/骑行爱好者
  • 需要本地化存储运动数据的隐私敏感用户
  • 学习 Strava API 集成的 Python 开发者

常规风险

| 风险点 | 说明 | 缓解措施 |
|--------|------|----------|
| 本地凭证泄露 | `~/.strava_credentials.json` 若权限宽松可被同机用户读取 | 手动执行 `chmod 600` |
| 依赖供应链 | stravalib 若被投毒将影响功能 | 锁定版本并定期审计 |
| OAuth Token 过期 | 长期未使用需重新授权 | 关注 token 有效期提示 |

strava-python 内容

手动下载zip · 5.4 kB
CHANGELOG.mdtext/markdown
请选择文件