web-dev-qa-db-fra.com

Problème avec le jeton d'accès dans Strava API v3 OBTENEZ toutes les activités des athlètes

J'ai du mal à accéder à toutes les activités des athlètes (les miennes) à partir de l'URL dans la documentation de l'API de Strava.

Je peux obtenir mes propres statistiques depuis le début de l'année:

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

Je peux obtenir les informations de mon profil:

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

Mais quand j'essaye de faire toutes mes activités:

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

Je reçois l'erreur suivante:

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

Dois-je inclure mon ID client ou ma clé secrète quelque part dans l'URL? Je suis connecté et je ne comprends donc pas pourquoi je ne peux pas accéder à mes propres informations. S'il vous plaît donnez votre avis????

10
mhanley00

Le 15 octobre 2018, Strava a amélioré le processus autorisation en introduisant une nouvelle liste de étendues .

Utilisez-vous le jeton d'accès que vous trouvez sur https://www.strava.com/settings/api ?

Ce jeton a scope:read ce n'est peut-être pas suffisant pour faire ce que vous voulez (c'est-à-dire que vos activités sont publiques ou privées?).

Si vous avez besoin d'un nouveau jeton avec différentes portées, vous devez suivre ces étapes .

ÉTAPE 1: redirigez l'utilisateur vers la page d'autorisation de Strava:

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

ÉTAPE 2: lire le paramètre code de la réponse:

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

ÉTAPE 3: demandez un nouveau jeton d'accès à l'aide d'un POST contenant le code d'autorisation; vous trouverez le nouveau access_token dans la réponse JSON.

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

Vous pouvez trouver l'ID client, le secret client et le domaine de rappel dans votre page d'application .

Vous pouvez trouver la liste des nouvelles étendues dans ce documentation .

Si vous êtes la seule personne à utiliser votre application, vous pouvez effectuer manuellement les 2 premières étapes à l'aide d'un navigateur et http://localhost comme domaine de rappel.

10
tezzo