我正在使用Alamofire通过我的iOS Swift 5应用程序访问Strava api端点。我可以进行身份验证并获得OAuth令牌,但是当我尝试进行GET请求时,会返回错误消息:
{
errors = (
{
code = invalid;
field = "access_token";
resource = Athlete;
}
);
message = "Authorization Error";
}
GET请求有什么问题?以下是我尝试从zones endpoint获取运动员心律和力量区域的功能:
func getTimeInZones(athleteID: String, completion: @escaping ([String]?) -> Void) {
// 1
print("The token: \(strava.token)")
Alamofire.request("https://www.strava.com/api/v3/athlete/zones",
method: .get,
parameters: ["athlete": athleteID],
headers: ["Authorization": "Bearer \(strava.token)"])
// 2
.responseJSON { response in
guard response.result.isSuccess,
let value = response.result.value else {
print("Error while fetching zones: \(String(describing: response.result.error))")
completion(nil)
return
}
print(value)
// 3
let zones = JSON(value)["results"][0]["zones"].array?.map { json in
json["zone"].stringValue
}
// 4
completion(zones)
}
}
耐力训练期间,区域端点具有运动员心率和力量区域所花费的最小,最大和时间。因此,我希望此函数返回一个包含运动员心律和功率区域以及每个区域所花费时间的json数组。