这是一般性问题,我想要的是如果有人登录我使用Google-Auth / Email-Password登录,我也可以获取Facebook个人资料信息?这些步骤是否正确:
如果有可能,建议任何其他方式?!
答案 0 :(得分:1)
以下是 Xcode 8.3 的工作代码以及 Swift 3.1 :
按照以下步骤获取Facebook数据: -
第1步:
import FBSDKCoreKit
import FBSDKLoginKit
第2步:符合代表。
FBSDKLoginButtonDelegate
第3步:登录按钮IBAction方法。
// Facebook登录操作
@IBAction func facebookLoginAction(_ sender: Any) {
//Fb login process
let fbLoginManager : FBSDKLoginManager = FBSDKLoginManager()
fbLoginManager.loginBehavior = .native
fbLoginManager.logOut()
fbLoginManager.logIn(withReadPermissions: ["email"], from: self) { (result, error) -> Void in
if (error == nil){
let fbloginresult : FBSDKLoginManagerLoginResult = result!
if fbloginresult.isCancelled {
}
else if (fbloginresult.declinedPermissions != nil){
if(fbloginresult.grantedPermissions.contains("email")) {
self.getFBUserData()
}
}
}
}
}
第4步:按照以下方式获取Facebook数据。
func getFBUserData(){
if((FBSDKAccessToken.current()) != nil){
FBSDKGraphRequest(graphPath: "me", parameters: ["fields":"first_name, last_name,email, picture.type(large),gender"]).start(completionHandler: { (connection, result, error) -> Void in
if (error == nil){
let newResult = result as AnyObject
let email = newResult["email"] as? String ?? ""
print("Your Email = \(email)")
let firstName = newResult["first_name"] as? String ?? ""
let lastName = newResult["last_name"] as? String ?? ""
print(FBSDKAccessToken.current())
let gender = newResult["gender"] as? String ?? ""
let id = newResult["id"] as? String ?? ""
print("the access token is \(FBSDKAccessToken.current().tokenString)")
let accessToken = FBSDKAccessToken.current().tokenString
//self.signInUser()
}
})
}
}
随意对此发表评论,希望它能解决您的问题。感谢