IOS

1

私はFacebookLoginFirebaseFacebook Login buttonを使用して実行しようとしていますが、私はこのIOS

error:Facebook login was cancelled.

2016-04-01 19:08:15.721 biblos[778:408049] Warning: Attempt to present on whose view is not in the window hierarchy!

ユーザーがログアウト得続けるためにFirebaseとLoginButtonとFacebookログインは...

Facebookのログインがキャンセルされました。

2016-04-01 19:08:53.675 biblos[778:408049] Warning: Attempt to present on whose view is not in the window hierarchy!

次のように私のViewControllerコードは次のとおりです。

import UIKit 
import Firebase 
import FBSDKCoreKit 
import FBSDKLoginKit 

class ViewController: UIViewController, FBSDKLoginButtonDelegate { 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 


    var loginButton = FBSDKLoginButton() 
    loginButton.readPermissions = ["public_profile", "email", "user_friends"] 
    loginButton.center = self.view.center 
    loginButton.delegate = self 
    self.view.addSubview(loginButton) 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 




// MARK: - Facebook Login 

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) 
{ 
    let ref = Firebase(url: "https://biblos-thebookapp.firebaseio.com") 
    let facebookLogin = FBSDKLoginManager() 

    facebookLogin.logInWithReadPermissions(["email"], handler: { 
     (facebookResult, facebookError) -> Void in 

     if facebookError != nil { 
      print("Facebook login failed. Error \(facebookError)") 
     } else if facebookResult.isCancelled { 
      print("Facebook login was cancelled.") 
     } else { 
      let accessToken = FBSDKAccessToken.currentAccessToken().tokenString 

      ref.authWithOAuthProvider("facebook", token: accessToken, 
       withCompletionBlock: { error, authData in 

        if error != nil { 
         print("Login failed. \(error)") 
        } else { 
         print("Logged in! \(authData)") 
        } 
      }) 
     } 
    }) 

} 

func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) 
{ 
    print("User logged out...") 
} 


} 

答えて

0

このメソッドは推奨されません。代わりにlogInWithReadPermissions:fromViewController:handler:を使用し、UIViewControllerまたはnil(最上位が使用されます)を渡してください。

https://developers.facebook.com/docs/reference/ios/current/class/FBSDKLoginManager/

+0

私はfromViewControllerの部分に置くことはできません。私はゼロを置いて同じ問題を抱えていました –

+0

このviewControllerは更新されたイベントを取得します。 viewWillAppear()Facebookステータスが更新された後。私はそれが好きではない、それは私の制御を少なくしますが、別の方法は廃止されました。 – Eugene

+0

ああ。私はまた、ハンドラにもまだ問題があります。私は何をそこに置くべきか分からない。 –

関連する問題