使用swift和parse获取Facebook用户详细信息

时间:2015-07-06 11:07:35

标签: swift facebook-ios-sdk

当我通过解析登录新用户时,我需要获取Facebook用户信息详细信息。目前我正在登录下面的新用户。似乎无法获得用户的详细信息。我见过一些写在目标上的代码 - c。大多数功能不再起作用了

我正在运行的Facebook iOS sdks是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.")
        }
    }
}

2 个答案:

答案 0 :(得分:9)

要获取用户详细信息,您必须在登录请求后发送FBSDKGraphRequest。

这可以在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

            // ....
        }
    }               

答案 1 :(得分:1)

对于新的Facebook API和 Swift 3.1 版本,您可以执行以下操作:

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!)
        }
    })
}