我将Strava添加到一个iOS应用程序中,Strava使用Auth2.0,每个Strava API调用都需要一个令牌来证明用户已通过身份验证,并且应用程序有权访问该应用程序接口。在从用户登录响应中获得一个特殊的“代码”后,我需要与Strava交换它以获得令牌。我尝试使用从登录中获得的"code“来检索令牌,如下所示:
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坏的请求,如果任何人有使用Strava API的经验或任何关于我做错了什么的想法,请给我建议。
发布于 2019-02-14 00:49:02
您必须指定grant_type=authorization_code以告知令牌端点应用程序正在使用authorization code grant type
https://www.strava.com/oauth/token?
client_id=<YOUR_CLIENT_ID>&
client_secret=<YOUR_CLIENT_SECRET>&
code=<AUTHORIZATION_CODE_FROM_STRAVA>&
grant_type=authorization_codehttps://stackoverflow.com/questions/54661565
复制相似问题