如何从邮递员那里实现“ GET”请求以适用于STRAVA API?

时间:2019-01-29 19:27:28

标签: api postman strava

进一步更新...

我已经开始工作了。尽管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在第一个示例中有效。

很抱歉,这是一个白痴问题。我是一个初学者,不胜感激。

谢谢

1 个答案:

答案 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不允许进行额外的身份验证步骤,这就是我无法获得预期结果的原因。