0
整合Facebook登录在我的Xcode项目我已经有了,他们创建了一个使用用户的用户名在功能的标志和密码。现在我想在该项目中集成Facebook登录。我能够在Facebook上撰写简单的注册表,将项目连接到他们的Facebook。这一步我就两个问题难倒后:使用Parse
要通过实拍一个用户,我需要保存某种形式的独特标识,使他们可以通过用户再次登录时。但我不知道这个标识是什么或从哪里得到。
我只知道如何通过自己的用户名和密码,我保存在解析去他们的个人资料登录用户。这与Facebook如何工作?
任何人都可以帮我解决这两个问题吗?
我抄我的代码,我有什么对Facebook登录:
@IBOutlet var facebookSignUpButton: FBSDKLoginButton!
var fullnameFB = String()
var emailFB = String()
var isFBSignUp = Bool()
override func viewDidLoad() {
super.viewDidLoad()
signUpWithFacebook()
}
//
// Facebook Sign Up Functions =>
//
func signUpWithFacebook() {
facebookSignUpButton.readPermissions = ["email", "public_profile"]
facebookSignUpButton.delegate = self
self.view.addSubview(facebookSignUpButton)
}
//what to do when logged in
func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) {
if error != nil { //if theres an error
print(error)
} else if result.isCancelled { // if user cancels the sign up request
print("user cancelled login")
} else {
if result.grantedPermissions.contains("email") {
if let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "email, name"]) {
graphRequest.start(completionHandler: { (connection, result, error) in
if error != nil {
print(error?.localizedDescription ?? String())
} else {
if let userDetails = result as? [String: String]{
print(userDetails)
self.fullnameFB = userDetails["name"]!
self.emailFB = userDetails["email"]!
self.isFBSignUp = true
}
self.performSegue(withIdentifier: "SignUpP2VC", sender: nil)
}
})
}
} else {
print("didnt get email")
createAlert(title: "Facebook Sign Up", message: "To signup with Facebook, we need your email address")
}
}
}
//logout function
func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) {
print("logged out")
}
在哪里/什么我应该从他们的Facebook个人资料中保存唯一的身份证明,以便我知道当他们使用Facebook登录时要提供哪个账户。截至目前,人们输入他们的用户名和密码登录,并根据用户名提出他们的个人资料。但是,如果他们使用Facebook登录,我将不会拥有该初始用户名。 **我该怎么救?** – fphelp
按简介你的意思是在分析一个用户?一旦你使用'PFFacebookUtils.logInInBackground',图书馆将在必要时在用户表中创建一个新的行。从那里你可以访问所有用户的详细信息。如果您确实需要用户名,您可以向用户提出昵称。 – nathan
通过'PFFacebookUtils.logInInBackground'返回的用户变量是'PFUser?'。您不需要用户名,但是如果您的应用程序需要用户名,则需要询问昵称(用户名是由Parse在使用第三方认证服务时自动生成的)。 – nathan