Swift FacebookGraphAPI快速获取
我在使用Facebook Graph API时遇到问题。连接由Swift FacebookGraphAPI快速获取,swift,facebook,facebook-graph-api,facebook-access-token,Swift,Facebook,Facebook Graph Api,Facebook Access Token,我在使用Facebook Graph API时遇到问题。连接由login.swift中的Firebase进行 我的Facebook登录按钮代码: public func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) { loginAlert.isHidden = false if error !
login.swift
中的Firebase
进行
我的Facebook登录按钮代码:
public func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!)
{
loginAlert.isHidden = false
if error != nil {
print(error.localizedDescription)
return
} else if (result.isCancelled){ // Canceled by user
print("user canceled sign up")
loginAlert.text = "Canceled"
} else {
let credential = FIRFacebookAuthProvider.credential(withAccessToken: FBSDKAccessToken.current().tokenString)
FIRAuth.auth()?.signIn(with: credential, completion: { (user, error) in // Sign in
if error != nil {
print(error!.localizedDescription)
return
}
self.ref.child("Users").child(user!.uid).child("Name").setValue(user?.displayName)
})
print("user logged with facebook -> WalkThrough")
loginAlert.text = "Successfuly logged in!"
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + Double(Int64(NSEC_PER_SEC) * 2) / Double(NSEC_PER_SEC), execute: { () -> Void in
transitionSegue.segue.switchToWalkThrough() // Segue
})
}
}
然后我试图从profile.swift
中的Graph API中获取数据
我的提取数据功能:
func getUserFacebookDataAndFriends() {
if (FBSDKAccessToken.current() != nil) {
let parameters = ["fields": "email, id, name"]
let graphRequest = FBSDKGraphRequest(graphPath: "me", parameters: parameters)
_ = graphRequest?.start { connection, result, error in
// If something went wrong, we're logged out
if (error != nil) {
// Clear email, but ignore error for now
return
}
} // End of graph request
}
}
但它会直接返回。从Facebook获取数据的唯一方法是在用户登录过程中。
我认为,当用户已经登录时,应用程序会丢失facebook令牌,然后Firebase会接管,同时保存facebook用户
有人有解决办法吗