2017-01-13 2 views
2

Я в настоящее время пытается авторизовать пользователей с помощью OAuth2.0. В настоящее время я использую следующую библиотеку: https://github.com/p2/OAuth2. Вот мой код:Fitbit OAuth2.0 Token-request (Swift 3)

let oauth2 = OAuth2CodeGrant(settings: [ 
    "client_id": "******", //ID from Fitbit 
    "client_secret": "***************************", //Secret from Fitbit 
    "authorize_uri": "https://www.fitbit.com/oauth2/authorize", 
    "token_uri": "https://api.fitbit.com/oauth2/token", 
    "redirect_uris": ["http://google.com/"], 
    "scope": "profile settings activity nutrition heartrate location nutrition profile settings sleep social weight", 
    "secret_in_body": true, 
    "keychain": false,   
    ] as OAuth2JSON) 

А вот моя функция санкционировать:

func startAuthorization() { 
    oauth2.logger = OAuth2DebugLogger(.trace) 

    oauth2.authorize() { authParameters, error in 
     if let params = authParameters { 
      print("Authorized! Access token is in `oauth2.accessToken`") 
      print("Authorized! Additional parameters: \(params)") 
     } 
     else { 
      print("Authorization was cancelled or went wrong: \(error)") // error will not be nil 
     } 
    } 
} 

Вот мой лог-след:

[Debug] OAuth2: Starting authorization 
[Debug] OAuth2: No access token, checking if a refresh token is available 
[Debug] OAuth2: I don't have a refresh token, not trying to refresh 
[Debug] OAuth2: Opening authorize URL in system browser: https://www.fitbit.com/oauth2/authorize?state=35701F98&response_type=code&scope=profile+settings+activity+nutrition+heartrate+location+nutrition+profile+settings+sleep+social+weight&redirect_uri=http%3A%2F%2Fgoogle.com%2F&client_id=****** 

Он отлично работает без каких-либо ошибок, но я просто не получите токен доступа. Каждый учебник, который я нашел, был в Swift 2. Надеюсь, вы можете мне помочь!

ответ

0

Не уверен, что это поможет вам, но есть примеры для Fitbit в демонстрационном приложении. Это было последнее обновление около 2 месяцев назад, поэтому оно должно быть в Swift 3. Но я заранее извиняюсь, если это не так.

расположен здесь: https://github.com/OAuthSwift/OAuthSwift/blob/master/Demo/Common/ViewController.swift

Они имеют код для обоих Fitbit и FitBit 2.

Поиск по // ЗНАК: Fitbit

EDIT: Моя плохая, неправильная библиотека ...

Мой ответ был для этой библиотеки:

https://github.com/OAuthSwift/OAuthSwift

+0

Среда с страницы Fitbit Oauth2: для собственных приложений это означает, что страница авторизации должна открываться в браузере по умолчанию. Собственные приложения могут использовать настраиваемые схемы URL как перенаправленные URI для перенаправления пользователя из браузера на запрос, запрашивающий заявку. Приложения iOS могут использовать класс SFSafariViewController вместо перехода на Safari. Использование класса WKWebView или UIWebView запрещено. – fpeng

+1

Код авторизации Поток грантов имеет следующие шаги: Ваше приложение перенаправляет пользователя на страницу авторизации Fitbit. По соглашению пользователя Fitbit перенаправляет пользователя обратно на URL-адрес перенаправления вашего приложения с кодом авторизации в качестве параметра URL. Ваша заявка обменивает код авторизации для токена доступа и обновляет токен. В вашем приложении хранится токен доступа и обновляется токен. Он будет использовать токен доступа для запросов к Fitbit API. Он будет использовать токен обновления, чтобы получить новый токен доступа, когда токен доступа истекает без необходимости повторного запроса пользователя. – fpeng

+0

Я уже пробовал эту библиотеку. Но для меня это не сработало. :( – Moo123

Смежные вопросы