2017-07-15 26 views
0

私はFacebookとの最初のログインを確認したいので、2つのオプションを挙げることができます: 1.追加の詳細を追加する必要がある認証手順2に最初にログインした場合。 2.オプション2、ユーザーが既にFacebookにログインしてホームページに送信されている場合。Facebookでの最初のログインを迅速に確認するにはどうすればよいですか?

私はfirebaseを使用していますが、私はそれらをログに記録する方法を知っていますが、この部分はわかりません。私はそれが私の悩みを与える右のViewControllerに送信するとほんの一部で、正常に動作するこの機能を使用しています:

func loginWithFacebookAction() { 
    print("Login with Facebook clicked") 

    FBSDKLoginManager().logIn(withReadPermissions: ["public_profile", "email", "user_friends"], from: self) { (result, err) in 
     if err != nil { 
      print("FB login failed", err as Any) 
     } else if (result?.isCancelled)! { 
      print("The user cancelled loggin in") 
      self.segueProgramaticWithPresent(viewController: LoginController()) 
     } else { 

      if (FBSDKAccessToken.current() != nil) { 
       print("Go to main page") 
       self.facebookRequestUserDetails() 
       self.segueToAnotherView(storyboard: "Main", identifier: "SWRevealViewController") 
      } else { 
       print("Go to Step 2 - add more details") 
       self.segueProgramaticWithPresent(viewController: CreateAccountST2()) 
      } 

     } 

私がチェックするFacebokTokenを使用していますが、ユーザーがボタンをクリックすると、それは意志常にtrueを返します。 サーバ側のデータベースにそのfacebook_id

答えて

0
  1. ストア登録のFacebookユーザー。ユーザーFacebookで正常にログインするとき、あなたはFBSDKAccessToken.current()と access_tokenはを取得し、サーバー側のAPIを に送信します次に
  2. グラフAPIにサーバー側の要求にはそのaccess_tokenと getでfacebookuser_id

    https://graph.facebook.com/me?access_token= {accesstoken} は、単にidフィールドを含むjsonを返します。

  3. facebookuser_idが届いたら、ユーザー が既にデータベースに存在するかどうかを確認できます。
  4. の場合は、存在し、すでにユーザーを返す存在する場合
  5. 「あなたが彼女/彼 から余分な詳細情報を取得する必要がありますので、ちょっとこれは新しいユーザーがある」と言う コードで新しいユーザーとの応答を作成しません。
関連する問題