2015-05-20 100 views
2

我使用Facebook的IOS SDK 4.1图请求返回登录后无

,我使用此代码来获得用户点击按钮后,用户的信息和登录

func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) { 


     let graphRequest : FBSDKGraphRequest = FBSDKGraphRequest(graphPath: "me", parameters: nil) 
     graphRequest.startWithCompletionHandler({ (connection, result, error) -> Void in 

      if ((error) != nil) 
      { 
       println("Error: \(error)") 
      } 
      else 
      { 
       var fbuseremail = result.valueForKey("email") as! NSString 
       var fbfirstname = result.valueForKey("first_name") as! NSString 
       var fblastname = result.valueForKey("last_name") as! NSString 
       var fbusername = result.valueForKey("name") as! NSString 

      //....more code 

但result.valueForKey(“电子邮件“)和其他人返回零

任何想法如何解决这个问题?在Facebook的SDK 4.x的

回答

3

获取用户信息迅速

@IBAction func btnFBLoginPressed(sender: AnyObject) { 
    var fbLoginManager : FBSDKLoginManager = FBSDKLoginManager() 
    fbLoginManager .logInWithReadPermissions(["email"], handler: { (result, error) -> Void in 
     if (error == nil){ 
      var fbloginresult : FBSDKLoginManagerLoginResult = result 
      if(fbloginresult.grantedPermissions.containsObject("email")) 
      { 
       self.getFBUserData() 
       fbLoginManager.logOut() 
      } 
     } 
    }) 
} 

func getFBUserData(){ 
    if((FBSDKAccessToken.currentAccessToken()) != nil){ 
     FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id, name, first_name, last_name, picture.type(large), email"]).startWithCompletionHandler({ (connection, result, error) -> Void in 
      if (error == nil){ 
       println(result) 
      } 
     }) 
    } 
} 

输出:

{ 
    email = "[email protected]"; 
    "first_name" = Ashish; 
    id = 910855688971343; 
    "last_name" = Kakkad; 
    name = "Ashish Kakkad"; 
    picture =  { 
     data =   { 
      "is_silhouette" = 0; 
      url = "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xpf1/v/t1.0-1/p200x200/10394859_900936369963275_5557870055628103117_n.jpg?oh=fefbfca1272966fc78286c36741f9ac6&oe=55C89225&__gda__=1438608579_9133f15e55b594f6ac2306d61fa6b6b3"; 
     }; 
    }; 
} 
+0

我得到的 “设置没有一个名为 'ContainsObject' 成员” 在哪里错误 –

+0

? @ RULE101我添加了自定义fb按钮登录代码 –

+0

fbloginresult.grantedPermissions.containsObject(“email”)应该是fbloginresult.grantedPermissions.contains(“email”)我猜? –