我使用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")
}
}
答案 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)");
}
}
}
}