2016-08-21 14 views
0

FacebookのiOS SDKを使いこなしていたので、ユーザーは自分のアプリにログインできるようになりました。私はUIViewFBSDKLoginButtonクラスのthisによると、UIButtonの単純なサブクラスであるストーリーボードにセットアップしました。私は@IBOutlet weak var facebookLogInBtn: FBSDKLoginButton!を作成しました。それから私はこれがうまく機能し、私の目的のタスクと私は必要と余分な権限を達成し、私は単にfacebookLoginBtn.readPermissions配列にそれらを追加し、このようなFacebookの許可iOS

override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    facebookLogInBtn.delegate = self 
    facebookLogInBtn.readPermissions = ["public_profile", "email", "user_friends"] 
} 

として設定するなど、私の許可を行ってきました。しかし、いくつかのグーグルでは、代わりにFBSDKLoginManagerと一緒にFBSDKGraphRequestを使用するサイトを見つけました。例えばblogとする。今私の質問は次のとおりです:

  1. 私の考え方は受け入れ可能かハッキーですか?それは動作しますが、私は標準的な手順に従っていることを確信したいだけです。
  2. 私のやり方は、どうにかしてGraph APIを通じてデータを取得する方法ですか?私は明示的にFBSDKRequestまたはFBSDKLoginManagerオブジェクトを宣言していないためです。私は単にボタンを追加してdelegatesとVoilaを実装しました!私はアクセスしています。 JSONデータなどを解析する必要はありません。
  3. 私はまた、これらのサイトのほとんどが実際にはUIViewのクラスのいずれも作成していないことに気付いた。FBSDKLoginButtonのクラス。これが、「手作業」のすべてを処理しなければならない理由になりますか?

ご協力いただければ幸いです。 乾杯!

+0

以下のように要約すると、私はFacebookがでログを処理し、FBSDKLoginManagerで、成功時にログアウトさせることになった、私はFBSDKGraphRequestでユーザデータを取得し。その後、アプリにサインインし直してください。それは働いていますか? –

答えて

0

私がやっていたやり方は正しいですが、私はそれでユーザーデータを取得することができませんでした。 FBSDKLoginManagerオブジェクトでは、Facebookは私のためにすべてを処理しました。ユーザーの最終的な返答(同意かどうか)を返すだけですが、私のreadPermissions配列を通じて要求された実際のデータはありません。任意のデータ検索用。おそらく書いても、私はFBSDKGraphRequestオブジェクトを作成しなければなりませんでした。あなたのFBのアカウントに移動し、このアプリにアカウントから権限を削除

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) 
{ 
    if error != nil 
    { 
     print("Facebook Log In Failed") 
     print(error.localizedDescription) 
    } 

    let graphRequest: FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields" : "\(FacebookPermission.NAME), \(FacebookPermission.FIRST_NAME), \(FacebookPermission.LAST_NAME), \(FacebookPermission.EMAIL)"]) 

    graphRequest.startWithCompletionHandler { (connection: FBSDKGraphRequestConnection!, result:AnyObject!, error: NSError!) in 

     if error == nil 
     { 
      print("Data retrieval was successful") 
     } 
     else 
     { 
      print("Facebook Graph Request Error") 
      print(error) 
     } 
    } 
} 
関連する問題