我正在尝试使用facebook sdk注册/登录用户到我的IOS应用程序。 当我按下登录按钮safari打开Facebook登录屏幕。输入正确的凭证后,我将返回应用程序并登录按钮更改为注销按钮,我可以检索用户信息(姓名和电子邮件地址)。问题是,当我尝试将此传递给我的后端服务(telerik / everlive)时,它会返回以下错误:
Failed to log in the user: The provided access token is invalid or has expired
以下所有代码均来自我的 LoginViewController
override func viewDidLoad() {
super.viewDidLoad()
if (FBSDKAccessToken.currentAccessToken() != nil)
{
print("User is already logged in")
// User is already logged in, do work such as go to next view controller.
}
else
{
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email"]
loginView.delegate = self
}
}
//
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
print("Returned from Login")
if ((error) != nil)
{
print(error.description)
// Process error
}
else if result.isCancelled {
print("cancelled")
// Handle cancellations
}
else {
// If you ask for multiple permissions at once, you
// should check if specific permissions missing
if result.grantedPermissions.contains("email")
{
print(result.token)
}
print(result.token.tokenString)
print(FBSDKAccessToken.currentAccessToken().tokenString)
fbToken = result.token
registerUserFromFacebook()
}
}
//
func registerUserFromFacebook(){
print("1")
print(fbToken.tokenString)
EVUser.loginWithFacebook(fbToken.tokenString , block: { (user:EVUser!, error:NSError!) -> Void in
if (error == nil) {
user.username = String("\(self.facebookFirstName)\(self.facebookLastName)")
} else {
//This is the error
print("Failed to log in the user: " + error.domain)
}
})
}
我正在努力解决这个问题,并且telerik和Facebook SDK的所有文档都是客观的c,我不知道他们反对swift。