web-dev-qa-db-ja.com

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または秘密鍵を含める必要がありますか?ログインしているので、自分の情報にアクセスできない理由がわかりません。お知らせ下さい????

10
mhanley00

2018年10月15日、Stravaは、 scope の新しいリストを導入する authorization プロセスを強化しました。

https://www.strava.com/settings/api にあるアクセストークンを使用していますか?

このトークンにはscope:readがありますが、それはおそらくあなたが望むことをするのに十分ではありません(つまり、あなたのアクティビティは公開ですか、それとも非公開ですか?)。

異なるスコープの新しいトークンが必要な場合は、これらの steps に従う必要があります。

ステップ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つのステップを手動で行うことができます。

10
tezzo