2015-05-05 15 views
6

Kullanıcının e-posta adresini ve genel profilini görmek için Facebook özel giriş özelliğini kullanıyorum ama sadece bunu aldım. Kaçırdığım başka bir kod var mı? Çevrimiçi eğiticilerin çoğu Obj-C veya halihazırda modası geçmiş. Bu proje için Swift kullanıyorum. İşte FBSDKLoginManagerLoginResult kullanıcısına e-posta gönderin ve adı

RESULT: '<FBSDKLoginManagerLoginResult: 0x7fe6f8c1d510>' 

kullanıcı bilgi almak için özel düğme

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

Ben sadece olsun " '[email, public_profile]'" It does not value yerine –

cevap

15

Kullanım FBSDKGraphRequest benim kod bulunmaktadır. Swift 2.1 için

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

arasında FBSDKLoginManagerLoginResult ... – LKM

+0

geri dönen adını ve yalnızca kimliği kullanın. E-posta gibi daha fazla profil ayrıntılarına da ihtiyacım var. bende başka bir şey mi eksik? – Dashrath

+0

@Dashrath e-posta için izin istedi mi? Eğer evet ise o zaman e-posta almalısınız. –

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)"); 
       } 
      } 
     } 
    } 
3

Swift 3+

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

içinde parametreler: ["alanlar": "id, about, doğum günü, e-posta, cinsiyet, isim, resim"] ! İyi çalışıyor. – Raja

+0

Basit ve etkili, teşekkürler! – AndyDunn