Как интегрировать FitBit Api в приложение IOS с помощью Swift

Сначала я создал учетную запись на https://www.fitbit.com/ Затем я обработал приложение на https://dev.fitbit.com/ затем установил OAuthSwift с помощью какао-бобов и реализовал этот метод в моем AppDelegate.

    func application(app: UIApplication, openURL url: NSURL, options: [String : AnyObject]) -> Bool {
    if (url.host == "oauth-callback") {
        OAuthSwift.handleOpenURL(url)
    }
    return true
}

теперь я хочу получить данные (имя, предпринятые шаги и т. д.) учетной записи, которую я создал на https://www.fitbit.com/ как я могу это сделать? Я искал, но не смог найти учебник по интеграции Fitbit. И где использовать эту информацию в моем коде? Поэтому, пожалуйста, расскажите мне о следующем шаге, что я должен сделать, чтобы получить данные.

2 ответа

Решение

FitBit работает с API OAuth 2.0, для которого требуется идентификатор клиента и секретный ключ. Эти идентификаторы клиента и секретный ключ необходимы для аутентификации с помощью API OAuth 2.0. В блоге есть сообщение об интеграции FitBit в iOS со Swift. Позволяет оформить заказ и изучить "Как реализовать fitbit в iOS" https://appengineer.in/2016/04/30/fitbit-aouth-in-ios-app/

например:

let oauthswift = OAuth2Swift(
        consumerKey:    fitbit_clientID,
        consumerSecret: fitbit_consumer_secret,
        authorizeUrl:   "https://www.fitbit.com/oauth2/authorize",
        accessTokenUrl: "https://api.fitbit.com/oauth2/token",
        responseType:   "token"
    )

Есть ли шанс, что вы могли бы сделать это с базовой аутентификацией, а не с OAuth? У меня была похожая проблема при попытке отправить POST в MailGun для некоторых автоматических электронных писем, которые я внедрял в приложение.

Я смог заставить это работать должным образом с большим HTTP-ответом. Я поместил полный путь в Keys.plist, чтобы я мог загрузить свой код в github, и разбил некоторые аргументы на переменные, чтобы впоследствии их можно было программно установить в будущем.

// Email the FBO with desired information
// Parse our Keys.plist so we can use our path
var keys: NSDictionary?

if let path = NSBundle.mainBundle().pathForResource("Keys", ofType: "plist") {
    keys = NSDictionary(contentsOfFile: path)
}

if let dict = keys {
    // variablize our https path with API key, recipient and message text
    let mailgunAPIPath = dict["mailgunAPIPath"] as? String
    let emailRecipient = "bar@foo.com"
    let emailMessage = "Testing%20email%20sender%20variables"

    // Create a session and fill it with our request
    let session = NSURLSession.sharedSession()
    let request = NSMutableURLRequest(URL: NSURL(string: mailgunAPIPath! + "from=FBOGo%20Reservation%20%3Cscheduler@<my domain>.com%3E&to=reservations@<my domain>.com&to=\(emailRecipient)&subject=A%20New%20Reservation%21&text=\(emailMessage)")!)

    // POST and report back with any errors and response codes
    request.HTTPMethod = "POST"
    let task = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
        if let error = error {
            print(error)
        }

        if let response = response {
            print("url = \(response.URL!)")
            print("response = \(response)")
            let httpResponse = response as! NSHTTPURLResponse
            print("response code = \(httpResponse.statusCode)")
        }
    })
    task.resume()
}

Путь Mailgun находится в Keys.plist в виде строки с именем mailgunAPIPath со значением:

https://API:key-<my key>@api.mailgun.net/v3/<my domain>.com/messages?

Надеюсь это поможет!

Другие вопросы по тегам