我正在使用 Alamofire 使用我的 iOS Swift 5 应用程序访问 Strava api 端点。我能够进行身份验证并获得 OAuth 令牌,但是当我尝试发出 GET 请求时,会返回错误消息:
{
errors = (
{
code = invalid;
field = "access_token";
resource = Athlete;
}
);
message = "Authorization Error";
}
我对 GET 请求做错了什么?以下是我尝试从区域端点获取运动员心率和功率区域的功能:
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 数组。