Bohdan Podvirnyi

Strava

数据分析v1.0.0
作者:Bohdan Podvirnyi更新于 2026-05-11strava@clawhub_bohdanpodvirnyi/strava
用户分析指标监控

据 AlphaMoat 统计,截至 2026-09,Strava 累计下载 3,799 次、获 10 个星标,在全部 5,078 个 AI 技能中排名第 2,779 位,在「数据分析」分类(399 个)中排名第 211 位。

累计安装
238
累计下载
3,799
星标
10
全站排名
#2,779
全站前 55% · 「数据分析」前 53%
平台累计安装累计下载星标评论
ClawHub ↗1223,65710-
SkillHub ↗2383,7999—

各平台的计数口径不同,统计时间不一致。

这个技能是做什么的

该技能通过 Strava API 加载并分析运动活动、统计与训练数据:从创建 API 应用、OAuth 授权获取令牌开始,配置 STRAVA_ACCESS_TOKEN 后即可用 curl 拉取最近活动(per_page 分页)、按 Unix 时间戳过滤日期区间、查询单个活动详情、运动员档案与统计数据。访问令牌每 6 小时过期,需用 refresh_token 刷新;限流为每 15 分钟 200 次、每天的请求上限,401 错误表示令牌过期。

资料发布于 2026-10-27

可以用来做什么

  • 拉取最近 30 条运动活动:跑步、骑行、游泳等
  • 用 after/before 时间戳过滤指定日期范围的活动
  • 获取单个活动的完整详情:距离、移动时间、爬升、心率
  • 查询运动员档案与累计统计(rides/runs/swim 数据)
  • 用 refresh_token 脚本刷新每 6 小时过期的访问令牌

什么时候用

  • 需要分析自己的 Strava 训练数据与趋势时
  • 按时间范围汇总距离、配速或心率等指标时
  • 已完成 OAuth 授权并妥善保管 STRAVA_ACCESS_TOKEN 时

示例提示词

以下是根据技能文档生成的示例,不代表实际运行结果。

拉取我最近一周的跑步活动,列出名称、距离和类型
统计我最近 10 条活动的总距离,换算成公里
访问令牌过期报 401 了,帮我跑一遍 refresh_token.sh 刷新

月度数据趋势

累计下载3,799
2,5633,2273,8912026-03 · 累计下载 2,6552026-05 · 累计下载 3,1092026-07 · 累计下载 3,4672026-08 · 累计下载 3,5752026-09 · 累计下载 3,79926-0326-09
星标10
910102026-03 · 星标 92026-05 · 星标 92026-07 · 星标 102026-08 · 星标 102026-09 · 星标 1026-0326-09

2026-09 起统计方法调整:同名技能按作者分别统计,并覆盖全部技能。图中虚线为调整前的月份,与之后的数据不直接比较,也不计算跨越调整的增长。

月份累计下载环比星标
2026-093,799—10
2026-083,575+3.1%10
2026-073,467—10
2026-053,109—9
2026-032,655—9

SKILL.md 原文

以下是作者发布的原始文件,按纯文本显示,本站未做修改或审核;其中的链接不可点击,命令请核实后再运行。抓取于 2026-10-23。

6.0 KB · ClawHub v1.0.0
---
name: strava
description: Load and analyze Strava activities, stats, and workouts using the Strava API
homepage: https://developers.strava.com/
metadata: {"clawdbot":{"emoji":"🏃","requires":{"bins":["curl"],"env":["STRAVA_ACCESS_TOKEN"]},"primaryEnv":"STRAVA_ACCESS_TOKEN"}}
---

# Strava Skill

Interact with Strava to load activities, analyze workouts, and track fitness data.
展开全部(共 212 行)

## Setup

### 1. Create a Strava API Application

1. Go to https://www.strava.com/settings/api
2. Create an app (use `http://localhost` as callback for testing)
3. Note your **Client ID** and **Client Secret**

### 2. Get Initial OAuth Tokens

Visit this URL in your browser (replace CLIENT_ID):
```
https://www.strava.com/oauth/authorize?client_id=CLIENT_ID&response_type=code&redirect_uri=http://localhost&approval_prompt=force&scope=activity:read_all
```

After authorizing, you'll be redirected to `http://localhost/?code=AUTHORIZATION_CODE`

Exchange the code for tokens:
```bash
curl -X POST https://www.strava.com/oauth/token \
  -d client_id=YOUR_CLIENT_ID \
  -d client_secret=YOUR_CLIENT_SECRET \
  -d code=AUTHORIZATION_CODE \
  -d grant_type=authorization_code
```

This returns `access_token` and `refresh_token`.

### 3. Configure Credentials

Add to `~/.clawdbot/clawdbot.json`:
```json
{
  "skills": {
    "entries": {
      "strava": {
        "enabled": true,
        "env": {
          "STRAVA_ACCESS_TOKEN": "your-access-token",
          "STRAVA_REFRESH_TOKEN": "your-refresh-token",
          "STRAVA_CLIENT_ID": "your-client-id",
          "STRAVA_CLIENT_SECRET": "your-client-secret"
        }
      }
    }
  }
}
```

Or use environment variables:
```bash
export STRAVA_ACCESS_TOKEN="your-access-token"
export STRAVA_REFRESH_TOKEN="your-refresh-token"
export STRAVA_CLIENT_ID="your-client-id"
export STRAVA_CLIENT_SECRET="your-client-secret"
```

## Usage

### List Recent Activities

Get the last 30 activities:
```bash
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?per_page=30"
```

Get the last 10 activities:
```bash
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?per_page=10"
```

### Filter Activities by Date

Get activities after a specific date (Unix timestamp):
```bash
# Activities after Jan 1, 2024
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?after=1704067200"
```

Get activities in a date range:
```bash
# Activities between Jan 1 - Jan 31, 2024
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?after=1704067200&before=1706745600"
```

### Get Activity Details

Get full details for a specific activity (replace ACTIVITY_ID):
```bash
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/activities/ACTIVITY_ID"
```

### Get Athlete Profile

Get the authenticated athlete's profile:
```bash
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete"
```

### Get Athlete Stats

Get athlete statistics (replace ATHLETE_ID):
```bash
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athletes/ATHLETE_ID/stats"
```

### Pagination

Navigate through pages:
```bash
# Page 1 (default)
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?page=1&per_page=30"

# Page 2
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?page=2&per_page=30"
```

## Token Refresh

Access tokens expire every 6 hours. Refresh using the helper script:
```bash
bash {baseDir}/scripts/refresh_token.sh
```

Or manually:
```bash
curl -s -X POST https://www.strava.com/oauth/token \
  -d client_id="${STRAVA_CLIENT_ID}" \
  -d client_secret="${STRAVA_CLIENT_SECRET}" \
  -d grant_type=refresh_token \
  -d refresh_token="${STRAVA_REFRESH_TOKEN}"
```

The response includes a new `access_token` and `refresh_token`. Update your configuration with both tokens.

## Common Data Fields

Activity objects include:
- `name` — Activity title
- `distance` — Distance in meters
- `moving_time` — Moving time in seconds
- `elapsed_time` — Total time in seconds
- `total_elevation_gain` — Elevation gain in meters
- `type` — Activity type (Run, Ride, Swim, etc.)
- `sport_type` — Specific sport type
- `start_date` — Start time (ISO 8601)
- `average_speed` — Average speed in m/s
- `max_speed` — Max speed in m/s
- `average_heartrate` — Average heart rate (if available)
- `max_heartrate` — Max heart rate (if available)
- `kudos_count` — Number of kudos received

## Rate Limits

- **200 requests** per 15 minutes
- **2,000 requests** per day

If you hit rate limits, responses will include `X-RateLimit-*` headers.

## Tips

- Convert Unix timestamps: `date -d @TIMESTAMP` (Linux) or `date -r TIMESTAMP` (macOS)
- Convert meters to km: divide by 1000
- Convert meters to miles: divide by 1609.34
- Convert m/s to km/h: multiply by 3.6
- Convert m/s to mph: multiply by 2.237
- Convert seconds to hours: divide by 3600
- Parse JSON with `jq` if available, or use `grep`/`sed` for basic extraction

## Examples

Get running activities from last week with distances:
```bash
LAST_WEEK=$(date -d '7 days ago' +%s 2>/dev/null || date -v-7d +%s)
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?after=${LAST_WEEK}&per_page=50" \
  | grep -E '"name"|"distance"|"type"'
```

Get total distance from recent activities:
```bash
curl -s -H "Authorization: Bearer ${STRAVA_ACCESS_TOKEN}" \
  "https://www.strava.com/api/v3/athlete/activities?per_page=10" \
  | grep -o '"distance":[0-9.]*' | cut -d: -f2 | awk '{sum+=$1} END {print sum/1000 " km"}'
```

## Error Handling

If you get a 401 Unauthorized error, your access token has expired. Run the token refresh command.

If you get rate limit errors, wait until the limit window resets (check `X-RateLimit-Usage` header).

「数据分析」分类下的热门技能

AdMapix数据分析

AdMapix 的取数层:把广告与应用相关的查询转成接口调用,只回原始 JSON。

↓ 36.6万★ 304fly0pants
Tavily Search数据分析

走 Tavily 检索公开网页,返回带链接与摘要的结构化结果。

↓ 12.2万★ 286Xiaoran Li
Data Analysis数据分析

把数据库、表格与导出的原始数据变成可决策结论的数据分析技能。

↓ 10.1万★ 244Iván
Stock Analysis数据分析

用 Yahoo Finance 数据做股票与加密货币分析、组合跟踪的技能。

↓ 7.5万★ 299udiedrichsen
Stock Watcher数据分析

管理本地自选股清单,并按代码汇总同花顺行情与近期表现的技能。

↓ 6.5万★ 122Robin797860
全国招标中标查询及分析【知了标讯】数据分析

全网招中标数据查询与分析助手。当用户涉及以下任何场景时,必须使用此SKILL:查询招标/中标公告、搜索标讯、查找临期/即将到期项目、商机预测、推荐潜在投标供应商、分析公司主营业务/历史中标、查询公司上下游合作客户与供应商、分析竞争对手/竞对企业、查询Top采购单位/Top中标单位/Top中标品牌、招中标数据统计分析(按月/季/年/省份/品牌等维度)、查询品牌型号历史中标单价/价格趋势、市场分析/行业分析/采购寻源/渠道拓展等采购与投标相关场景。即使用户没有提到「知了标讯」,只要涉及招投标、采购、中标、供应商、竞争对手等关键词,都应使用本SKILL。

↓ 5.6万★ 13user_98035bfb
Blogwatcher数据分析

用命令行监控博客与 RSS/Atom 源的更新。

↓ 5.4万★ 75Peter Steinberger
Model Usage数据分析

汇总 Codex 或 Claude 按模型计费的使用成本。

↓ 5.0万★ 114Peter Steinberger

数据月份:2026-09 · 下载/星标/安装数聚合自公开技能注册库(ClawHub、SkillHub),按月更新。口径说明见数据方法。