通过 Parse 使用 Facebook 登录时无法获取用户的姓名或电子邮件。我应该在 AppDelegate 中正确设置其他所有内容。
当我用我的电子邮件登录时,我的用户类工作,并且可以使用我注册的数据。当我尝试通过 Facebook 登录时,我只将长字母数字字符串作为用户名并停止。我想检索姓名、照片、出生和城市。
在我的 User.swift 文件中,我得到了这个:
import Foundation
struct User
{
let username : String
let address : String
}
这是我的登录按钮:
@IBAction func facebookLoginAction(sender: UIButton)
{
PFFacebookUtils.logInInBackgroundWithReadPermissions(["public_profile", "user_about_me", "user_birthday"]) {
(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!")
}
self.dismissViewControllerAnimated(true, completion: nil)
}
else
{
println("Uh oh. The user cancelled the Facebook login.")
}
}
}
也试过这个,但不起作用:
func getUserInfo() {
// if let session = PFFacebookUtils.session() {
if let session = PFFacebookUtils.facebookLoginManager() {
if session.isOpen {
println("session is open")
FBRequestConnection.startForMeWithCompletionHandler({ (connection: FBRequestConnection!, result: AnyObject!, error: NSError!) -> Void in
//println("done me request")
if error != nil {
println("facebook me request - error is not nil :(")
} else {
println("facebook me request - error is nil :) ")
let urlUserImg = "http://graph.facebook.com/\(result.objectID)/picture?type=large"
let firstName = result.first_name
let lastName = result.last_name
}
})
}
} else {
//let user:PFUser = PFUser.currentUser()
//println("ohooo \(user)")
}
}
提前致谢