使用 swift 获取 Facebook 用户详细信息并解析
Get Facebook user details with swift and parse
当我通过解析登录新用户时,我需要获取 Facebook 用户详细信息。目前我正在登录下面的新用户。虽然似乎无法获取用户详细信息。我看过一些写在 objective - 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.")
}
}
}
要获取用户详细信息,您必须在登录请求后发送 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
// ....
}
}
对于新的 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!)
}
})
}
当我通过解析登录新用户时,我需要获取 Facebook 用户详细信息。目前我正在登录下面的新用户。虽然似乎无法获取用户详细信息。我看过一些写在 objective - 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.")
}
}
}
要获取用户详细信息,您必须在登录请求后发送 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
// ....
}
}
对于新的 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!)
}
})
}