Strava API v3 中的访问令牌问题获取所有运动员活动

新手上路,请多包涵

我无法从 Strava 的 api 文档中的 url 访问所有运动员活动(我自己的)。

我能够获得自己的年初至今统计数据:

 https://www.strava.com/api/v3/athletes/XXXXXXXX/stats?access_token=ACCESSTOKEN

我可以获得我的个人资料信息:

 https://www.strava.com/api/v3/athlete?access_token=ACCESSTOKEN

但是当我尝试进行所有活动时:

 https://www.strava.com/api/v3/athlete/activities?access_token=ACCESSTOKEN

我收到以下错误:

 {
    "message": "Authorization Error",
    "errors": [
        {
            "resource": "AccessToken",
             "field": "activity:read_permission",
             "code": "missing"
        }
    ]
}

我是否需要在 url 中的某处包含我的客户端 ID 或密钥?我已经登录,所以不明白为什么我不能访问我自己的信息。请指教🙏

原文由 mhanley00 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 628
1 个回答

2018 年 10 月 15 日,Strava 增强了 授权 流程,引入了新的 范围 列表。

您是否使用在 https://www.strava.com/settings/api 上找到的访问令牌?

这个令牌有 scope:read 可能不足以做你想做的事(即你的活动是公开的还是私人的?)。

如果您需要具有不同范围的新令牌,则必须按照以下 步骤 操作。

第 1 步:将用户重定向到 Strava 的授权页面:

 https://www.strava.com/oauth/authorize?
    client_id=YOUR_CLIENT_ID&
    redirect_uri=YOUR_CALLBACK_DOMAIN&
    response_type=code&
    scope=YOUR_SCOPE

第 2 步:从响应中读取 code 参数:

 http://YOUR_CALLBACK_DOMAIN/?
    state=&
    code=AUTHORIZATION_CODE_FROM_STRAVA&
    scope=YOUR_SCOPE

第 3 步:使用包含授权码的 POST 请求新的访问令牌;您会在 JSON 响应中找到新的 access_token

 https://www.strava.com/oauth/token?
    client_id=YOUR_CLIENT_ID&
    client_secret=YOUR_CLIENT_SECRET&
    code=AUTHORIZATION_CODE_FROM_STRAVA&
    grant_type=authorization_code

您可以在您的 应用程序页面 中找到客户端 ID、客户端密码和回调域。

您可以在本 文档 中找到新范围的列表。

如果您是唯一使用您的应用程序的人,您可以使用浏览器和 http://localhost 作为回调域手动执行前 2 个步骤。

原文由 tezzo 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题