进一步更新...
我得到了这个工作。尽管 Strava 的文档没有说调用中的任何参数都是强制性的,但似乎它们都是强制性的。您需要在纪元时间的参数之前和之后放置有效的参数,并且......(这是让我有点困惑的部分)您需要提供页码和每页的项目。每页的项目默认为 30,但页码不默认。它的工作方式是,如果你说第 1 页和每页 30 个项目,你会得到项目 1 - 30。如果你说第 3 页和每页 30 个项目,你会得到项目 31 - 60,依此类推。你必须创建一个循环,直到它得到一个空白页。然后您就知道您已检索到所有活动。(至少我认为它是这样工作的。)
阿德里安
问题更新...
经过一些挖掘和试验,我已经设法自己解决了一些问题(如下所述)。当您在 Strava 上的“我的 API 应用程序”下的设置下创建应用程序时,给出的令牌具有“读取”范围,并且似乎非常非常有限。
按照此处列出的步骤Strava 身份验证后,我能够获得具有以下范围的新令牌:
范围=读取,活动:读取,活动:read_all,配置文件:read_all,read_all
所以......我以为我是“黄金”,俗话说。
好吧,现在我可以使用以下方法进行个人活动:
https://www.strava.com/api/v3/activities/2110745394?include_all_efforts= "true"&access_token={{ADR_Strava_API_Key}}
但是当我尝试获取所有活动的列表时,我没有收到任何错误消息,但 Strava 只是返回
[] 这对于我认识的一名运动员来说有超过 1800 项活动。
我真正想要的是获取活动列表。任何帮助,将不胜感激。
谢谢
阿德里安
我可以使用邮递员使用以下 https 请求从 Strava 获取运动员信息:
https://www.strava.com/api/v3/athletes/19133707?access_token= {{ADR_Strava_API_Key}}
返回以下内容:
{
"id": 19133707,
"username": "adrian_geekie",
"resource_state": 2,
"firstname": "Adrian",
"lastname": "Geekie",
"city": "Gauteng, South Africa",
"state": "GP",
"country": "South Africa",
"sex": "M",
"premium": true,
"summit": true,
"created_at": "2017-01-03T16:07:37Z",
"updated_at": "2019-01-28T16:08:07Z",
"badge_type_id": 1,
"profile_medium": "https://dgalywyr863hv.cloudfront.net/pictures/athletes/19133707/5599004/2/medium.jpg",
"profile": "https://dgalywyr863hv.cloudfront.net/pictures/athletes/19133707/5599004/2/large.jpg",
"friend": null,
"follower": null
}
但是当我尝试使用此请求获取活动时:
https://www.strava.com/api/v3/19133707/activities?before=&after=1546293601&page=&per_page=&access_token= {{ADR_Strava_API_Key}}
我得到这个返回:
{“消息”:“未找到记录”,“错误”:[{“资源”:“资源”,“字段”:“路径”,“代码”:“无效”}]}
据我说,我要求提供 2019 年 1 月 1 日之后的所有记录,即纪元时间戳 1546293601。我知道在那之后该运动员有很多活动。(超过20)。
我还尝试使用以下方法进行单个活动:
https://www.strava.com/api/v3/activities/2110745394?include_all_efforts= "true"&access_token={{ADR_Strava_API_Key}}
我得到了结果:
{“消息”:“未找到资源”,“错误”:[{“资源”:“活动”,“字段”:“”,“代码”:“未找到”}]}
在 Strava 开发者页面上,给出了 HTTPie 的示例,如下所示:
https://www.strava.com/api/v3/activities/ {id}?include_all_efforts=" "授权:承载 [[token]]
所以我用 &access_token= 替换 "Authorization: Bearer [[token]]
也许这是我的错误,但 access_token 在第一个示例中有效。
如果这是一个完全白痴的问题,我很抱歉。我是初学者,我将不胜感激。
谢谢