Проблема с токеном доступа в Strava API v3 ПОЛУЧИТЕ все действия атлета - PullRequest
0 голосов
/ 18 октября 2018

У меня проблемы с доступом ко всем видам деятельности спортсмена (моей) с URL-адреса в документации API Стравы.

Я могу получить собственную статистику за год:

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?Я вошел в систему и поэтому не понимаю, почему я не могу получить доступ к своей собственной информации.Пожалуйста, сообщите?

1 Ответ

0 голосов
/ 19 октября 2018

15 октября 2018 г. 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, содержащий код авторизации;Вы найдете новый access_token в ответе 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

Вы можете найти идентификатор клиента, секрет клиента и домен обратного вызова на вашей странице приложения .

Вы можете найти список новых областей в этой документации .

Теперь список подсказок, если вы единственный человек, который использует ваше приложение:

  • вы можете вручную сделать первые 2 шага, используя браузер и http://localhost в качестве домена обратного вызова
  • , используя старый scope:view_private, вы можете получить то, что Страва называл токеном навсегда: вы можете использовать этот токен до 15 октября 2019 года безповторение 3-х шагов
  • на сегодня scope=read,activity:read_all,profile:read_all,read_all для получения кратковременного токена, кажется, не работает, когда вы задаете подробное задание
...