2015-07-06 13 views
5

tôi cần lấy thông tin chi tiết về người dùng Facebook khi tôi đăng nhập một người dùng mới thông qua phân tích cú pháp. hiện tại tôi đang đăng nhập vào người dùng mới bên dưới. dường như không thể có được chi tiết người dùng. Tôi đã nhìn thấy một số mã được viết trên mục tiêu - c. hầu hết các chức năng không hoạt động nữaNhận chi tiết người dùng Facebook nhanh chóng và phân tích

SDK iOS trên iOS mà tôi đang chạy là v4.3.0.

@IBAction func facebookButton(sender: AnyObject) { 

    PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions) { 
     (user: PFUser?, error: NSError?) -> Void in 
     if let user = user { 
      if user.isNew { 
       println("User signed up and logged in through Facebook!") 
      } else { 
       println("User logged in through Facebook!") 
      } 
     } else { 
      println("Uh oh. The user cancelled the Facebook login.") 
     } 
    } 
} 

Trả lời

8

Để nhận chi tiết người dùng, bạn phải gửi FBSDKGraphRequest sau yêu cầu đăng nhập.

Điều này có thể được thực hiện bên trong khối if let user = user {...}.

// Create request for user's Facebook data 
    let request = FBSDKGraphRequest(graphPath:"me", parameters:nil) 

    // Send request to Facebook 
    request.startWithCompletionHandler { 

     (connection, result, error) in 

     if error != nil { 
      // Some error checking here 
     } 
     else if let userData = result as? [String:AnyObject] { 

      // Access user data 
      let username = userData["name"] as? String 

      // .... 
     } 
    }    
+0

làm việc như một nét duyên dáng, nhờ –

+0

Hi Tôi đang cố gắng để lấy email người dùng sử dụng để username = userData ["name"] là? Chuỗi nhưng nó hiển thị không. Tôi nhận được tên người dùng thành công. – Vakas

+1

Tôi đã sửa nó. Bạn cần có tham số: ["trường": "id, email, tên, first_name, last_name"] – Vakas

0

Đối với các API Facebook mới và phiên bản của Swift 3.1 bạn có thể làm một cái gì đó như thế này:

if((FBSDKAccessToken.current()) != nil) { 
    FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "id,name,first_name,last_name,email"]).start(completionHandler: {(connection, result, error) -> Void in 

     if(error != nil) { 
      print("Some error occurred."); 
     } else { 
      print(result!) 
     } 
    }) 
} 
Các vấn đề liên quan