进一步更新...
我已经开始工作了。尽管Strava的文档没有说调用中的任何参数都是强制性的,但似乎所有参数都是必需的。您需要在纪元时间之前和之后添加有效的参数,然后...(这是让我感到困惑的部分),您需要提供每页的页码和项目。每页项目默认为30,但页码不是默认。它的工作方式是,如果说第1页和每页30个项目,则得到项目1-30。如果说第3页和每页30个项目,则得到项目31-60,以此类推。您必须创建一个循环,一直循环到获得空白页为止。然后,您知道您已经检索了所有活动。 (至少我是这样认为的。)
阿德里安
问题更新...
经过一些探索和试验,我设法自己解决了一些问题(如下所述)。当您在Strava上的“我的API应用程序”下的设置下创建的应用程序创建时,给出的令牌的作用域为“读取”,并且似乎非常有限。
按照此处列出的步骤Strava Authentication,我能够获得具有以下范围的新令牌:
scope = read,activity:read,activity: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}}
我得到这个退货:
{ “ message”:“找不到记录”, “错误”:[ { “ resource”:“资源”, “ field”:“ path”, “代码”:“无效” } ] }
根据我的要求,我要求提供2019年1月1日以后的所有记录,即纪元时间戳1546293601。我知道该日期之后该运动员有很多活动。 (超过20)。
我还尝试使用以下方法进行单个活动:
https://www.strava.com/api/v3/activities/2110745394?include_all_efforts=“ true”&access_token = {{ADR_Strava_API_Key}}
我得到结果:
{ “ message”:“找不到资源”, “错误”:[ { “资源”:“活动”, “ field”:“”, “代码”:“找不到” } ] }
在Strava开发人员页面上,HTTPie的示例如下所示:
https://www.strava.com/api/v3/activities/ {id}?include_all_efforts =““授权:不记名[[token]]
所以我用&access_token =
替换了“授权:承载[[token]]”也许这是我的错误,但是access_token在第一个示例中有效。
很抱歉,这是一个白痴问题。我是一个初学者,不胜感激。
谢谢
答案 0 :(得分:0)
我对Postman的GET请求也遇到了同样的问题。更具体地说,使用邮递员,{https://www.strava.com/api/v3/activities/12345678?include_all_efforts=true}不能正常工作,而{https://www.strava.com/api/v3/athletes/12345678/stats?}就像一种魅力一样。
然后我按照strava playground中所述尝试了docs。从那里,我被要求再次进行身份验证以扩展授权并成功发出GET请求。这个{https://www.strava.com/api/v3/activities/12345678?include_all_efforts=true}终于按预期工作了。我想使用Postman不允许进行额外的身份验证步骤,这就是我无法获得预期结果的原因。