2016-10-07 38 views
1

私はSwiftで非常に基本的なiOSアプリを開発しています。心拍数のデータを読むだけです。私はSFSafariViewControllerを使用しています。わかっているように、私はまずdev.fitbit.comに自分のアプリを登録する必要があります。登録フォームでは、コールバックURLを入力する必要があります。FitBitのログインページにログインしてからiOSアプリケーションにリダイレクトする方法は?

正常にログインした後、FitBitは入力されたコールバックURLに常にリダイレクトします。ログイン後、iOSアプリにユーザーをリダイレクトできるようにするには、/ code/configureをどうすればよいですか?

答えて

1

あなたがする必要があることは、AppDelegateにapplication(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool関数を追加して、アプリケーションのURLスキームを識別子として作成することです。 URLスキームを作成するには、アプリケーションターゲット>情報> URLタイプ(下部)に移動します。次に、AppDelegateに以下を追加してください:

func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool { 
    DispatchQueue.main.async { 
     // Conctrol so that we´re coming from the right application 
     if (url.scheme == "The url scheme that you created"){ 
      // Navigate to the viewController you want 
      let storyboard = UIStoryboard(name: "Main", bundle: nil) 
      let controller = storyboard.instantiateViewController(withIdentifier: "WebView") as! WebViewController 
      self.window?.rootViewController!.present(controller, animated: true, completion: {() -> Void in 
      }) 
     } 
    } 
    return true 
} 
+0

正常にログインした後、FitBitは戻ってそこにその登録したコールバックURLとスティックに私をリダイレクトします。 'func appliation(__:) '関数は呼び出されていません。私を助けてください! –

+0

Fitbit Apiは現在、iOSディープリンクをサポートしていません。 [次へ](http://deeplink.me)サービスを使用してURLディープリンクを作成し、上記のコードを私の答えに使用してみてください。 –

+0

[deeplink.me]サービスが意味することを教えてください。 –

0

アプリケーションで以下の3つの手順を試してみてください。

あなたは「fitbit」を使用しているので、私はあなたがログイン用OAuth2.0を使用してアクセストークンを取得している検討しています。

ステップ1:URLスキームを設定します。

enter image description here

ステップ2:上記の関数であなたのAppDelegateクラスで

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool { 
    if (url.host == "oauth-swift") { 
    OAuthSwift.handle(url: url) 
    } 
    return true 
} 

我々は、我々はURLがhandleOpenUrl方法に来るチェックして、天気予報をチェックしなかったものを正しいURLコールバックが来るかどうかです。

ステップ3:適切なコールバックURLをOAuthハンドラに設定します。

oauthswift = OAuth2Swift(
    consumerKey: "********", 
    consumerSecret: "********", 
    authorizeUrl: "your authorisation url", 
    responseType: "token" 
) 
let handle = oauthswift.authorize(
    withCallbackURL: URL(string: "oauth-swift://oauth-callback/fitbit")!, 
    scope: "your application scope", state:"state", 
    success: { credential, response, parameters in 
     print(credential.oauth_token) 
    }, 
    failure: { error in 
     print(error.localizedDescription) 
    } 
) 

は、上記のステップでは、私たちは「のOAuth-SWIFT:」で始まるURLをコールバック設定されているので、それはあなたのコールバックURLのホストとしての仕事になります。

イメージとコード提供:簡単な言葉で 問題の解決方法を説明しようとしました。そして、この答えのすべての情報は、もともと文書化され、このURLに説明されている : https://github.com/OAuthSwift/OAuthSwift

関連する問題