Загрузить параметры тренировки в Strava - Swift - PullRequest
1 голос
/ 25 марта 2019

Я пытаюсь загрузить свою тренировку через мое приложение в strava, и когда я отправляю свой запрос, он возвращает мне ошибку 400 и это:

(String?) $ R0 = "{\"message \": \ "Bad Request \", \ "errors \": [{\ "resource \": \ "Upload \", \ "field \": \ "file \", \ "code \":\ "not a file \"}]} "

Я смог без проблем подключить свое приложение к страве.Вот что я сделал до сих пор:

func saveWorkout(_ workout: FirebaseWorkout, completion: @escaping (_ success: Bool, _ error: Error?) -> Void) {
    let opts: [String: Any?] = [
        "file": nil,
        "name": workout.name
        "description": nil,
        "trainer": false,
        "commute": false,
        "dataType": ".gpx",
        "externalId": workout.key
    ]
    if self.isAuthorized && userSettings.membership.hasFullAccess {
        workoutLib().analyticsEvent(kEventCategoryThirdParty, eventAction: "SAVE_WORKOUT", eventLabel: ThirdPartyApplication.strava.rawValue, eventValue: 1)
        workoutLib().debugLog("Strava: Save Workout")
        self.refreshTokenIfNeeded {
            _ = self.oauthswift.client.post("https://www.strava.com/api/v3/uploads", parameters: opts as OAuthSwift.Parameters, success: { (_) in
                workoutLib().debugLog("Strava: Save Workout Success")
                completion(true, nil)
            }) { (error) in
                workoutLib().debugLog("Strava: Save Workout \(error.localizedDescription)")
                completion(false, error)
            }
        }
    } else {
        completion(false, nil)
    }
}

1 Ответ

0 голосов
/ 15 мая 2019

Из документации API Strava (https://developers.strava.com/docs/uploads/), поле file является обязательным, и похоже, что вы установили его как nil. Вероятно, поэтому он возвращает not a file, поскольку файл не передается через.

...