You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Strava v3 API导出对应活动的GPX文件

优先方案:通过Swagger生成的API调用获取GPX

Strava V3 API原生提供活动GPX导出接口,你不需要通过route接口、externalId或者polyline转换,直接使用活动ID调用对应接口即可,返回内容和你网页端下载的原始GPX文件完全一致。

标准Swagger生成的ActivitiesApi类会提供exportActivityGpx方法,调用示例(和你现有代码逻辑完全兼容):

// 初始化API客户端的逻辑和你获取活动列表的代码保持一致
def activitiesApi = new ActivitiesApi(getApiClientWithToken(token))
// 传入对应活动ID即可拿到GPX文件输入流
InputStream gpxStream = activitiesApi.exportActivityGpx(5656012590L)
// 将流写入本地文件完成下载
new File("strava_5656012590.gpx").withOutputStream { outputStream ->
    outputStream << gpxStream
}

如果你使用的Strava OpenAPI规范版本较旧,生成的ActivitiesApi中没有该方法,可以直接调用底层ApiClient的执行方法实现:

def apiClient = getApiClientWithToken(token)
// 构造请求路径
String path = "/activities/{id}/export_gpx".replace("{id}", "5656012590")
// 执行请求获取流
InputStream gpxStream = apiClient.invokeAPI(path, "GET", [:], null, [:], [:], null, "application/json", "application/json", new String[]{"Authorization"})?.body as InputStream

备选方案:cURL请求下载

直接携带有效令牌发起GET请求即可下载,示例:

curl -H "Authorization: Bearer 你的有效访问令牌" \
  https://www.strava.com/api/v3/activities/5656012590/export_gpx \
  -o strava_activity_5656012590.gpx

注意事项

调用接口前请确认你的访问令牌已经授予activity:read_all权限,否则会返回403无权限错误。

内容的提问来源于stack exchange,提问作者Matthias

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 23:39:02