获取FBSDKLoginManagerLoginResult的电子邮件和姓名

时间:2015-05-05 09:43:52

标签: ios facebook swift

我使用Facebook自定义登录来获取用户的电子邮件和公开个人资料,但我只能得到这个。还有其他我错过的代码吗?大多数在线教程都是Obj-C或已经过时。我正在使用Swift进行这个项目。

RESULT: '<FBSDKLoginManagerLoginResult: 0x7fe6f8c1d510>' 

以下是我的自定义按钮代码

let login = FBSDKLoginManager()
    login.logInWithReadPermissions(["email", "public_profile"]){ result, error in
        println("RESULT: '\(result)' ")

        if error != nil {
            println("error")
        }else if(result.isCancelled){
            println("result cancelled")
        }else{
            println("success")

        }
    }

4 个答案:

答案 0 :(得分:17)

使用FBSDKGraphRequest获取用户信息。

let login = FBSDKLoginManager()
    login.logInWithReadPermissions(["email", "public_profile"]){ result, error in
        println("RESULT: '\(result)' ")

        if error != nil {
            println("error")
        }else if(result.isCancelled){
            println("result cancelled")
        }else{
            println("success Get user information.")

            var fbRequest = FBSDKGraphRequest(graphPath:"me", parameters: nil);
        fbRequest.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in

            if error == nil {

                println("User Info : \(result)")
            } else {

                println("Error Getting Info \(error)");

            }
        }
        }
    }

答案 1 :(得分:3)

Swift 3 +

INSERT INTO authentication(usr, pwd)
  VALUES(Jeff, Isthisthe1);

答案 2 :(得分:2)

Xcode 10中的Swift 4代码:

func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
        if error != nil{
            //Failed Login

        } else if result.isCancelled{
            //User cancelled

        } else{
            //Successful login
            FBSDKGraphRequest(graphPath:"me", parameters: ["fields" : "email,name,picture"]).start(completionHandler: { (connection, result, error) in
                if error == nil {
                    print("User Info : \(result)")
                } else {
                    print("Error Getting Info \(error)");
                }
            })
        }
    }

答案 3 :(得分:1)

对于Swift 2.1:

let login = FBSDKLoginManager()
    login.logInWithReadPermissions(["email", "public_profile"]){ result, error in

        if error != nil {
            print("error")
        }else if(result.isCancelled){
            print("result cancelled")
        }else{
            let fbRequest = FBSDKGraphRequest(graphPath:"me", parameters: nil);
            fbRequest.startWithCompletionHandler { (connection : FBSDKGraphRequestConnection!, result : AnyObject!, error : NSError!) -> Void in

                if error == nil {
                    print("User Info : \(result)")
                } else {
                    print("Error Getting Info \(error)");
                }
            }
        }
    }
相关问题