Страва Аламофире токен - PullRequest
       95

Страва Аламофире токен

0 голосов
/ 13 февраля 2019

Я добавляю Strava в приложение для iOS, Strava использует Auth2.0, для каждого вызова API Strava требуется токен для подтверждения подлинности пользователя, а приложение имеет разрешение на доступ к API.После получения специального «кода» из ответа пользователя, мне нужно обменять его со Стравой, чтобы получить токен.Я пытаюсь получить токен, используя «код», полученный при входе в систему, следующим образом:

    var headers : HTTPHeaders {
            get {
                return [
                    "Accept": "application/json",
                ]
            }
        }

        let par = 
["client_secret": "671333e8c4a7726a5160adb615b74a428535f86e",
"client_id": "32573",
"code": "4/7wAZ8rA_jMXwponVhwGKuPmCDP4UGuCViojCq-K5KRiZ1CI1Gzqc2TdglTJ7k1DU2wIxH22fNguNNXTfIGpaD8g"] as [String : Any]

        Alamofire.request("https://www.strava.com/oauth/token", method: .post, parameters: par, encoding: JSONEncoding.default, headers: headers)
            .validate()
            .responseJSON { response in
            print("Response -> \(response.debugDescription)")
        }

Проблема в том, что я всегда получаю запрос 400 Bad, если у кого-то есть опыт работы с Strava API или любым другимИдея, что я делаю не так, пожалуйста, сообщите.

1 Ответ

0 голосов
/ 13 февраля 2019

Необходимо указать grant_type=authorization_code, чтобы сообщить конечной точке токена, что приложение использует тип предоставления кода авторизации :

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
...