Ios Swift Facebook登录:提供的访问令牌无效或已过期
我正在尝试使用facebook sdk将用户注册/登录到我的IOS应用程序。 当我按下登录按钮时,safari会打开一个Facebook登录屏幕。输入正确的凭据后,我将返回应用程序,登录按钮更改为注销按钮,我可以检索用户信息(姓名和电子邮件地址)。问题是,当我尝试将其传递到后端服务(telerik/everlive)时,它返回以下错误:Ios Swift Facebook登录:提供的访问令牌无效或已过期,ios,swift,facebook,telerik,facebook-login,Ios,Swift,Facebook,Telerik,Facebook Login,我正在尝试使用facebook sdk将用户注册/登录到我的IOS应用程序。 当我按下登录按钮时,safari会打开一个Facebook登录屏幕。输入正确的凭据后,我将返回应用程序,登录按钮更改为注销按钮,我可以检索用户信息(姓名和电子邮件地址)。问题是,当我尝试将其传递到后端服务(telerik/everlive)时,它返回以下错误: Failed to log in the user: The provided access token is invalid or has expired
Failed to log in the user: The provided access token is invalid or has expired
以下所有代码均来自myLoginViewController
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 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相反。当然这不是Facebook的问题,我无法100%确定问题所在。我在登录后和发送到telerik之前检查了字符串令牌,它们都是相同的@RohitkPay you logging out user anywhere?尝试重置模拟器,然后重试。我碰巧在那里储存了一些代币,这会使其他代币失效@CatalinaT。在ipad上进行测试。我卸载了应用程序,然后重新安装,它工作了。太棒了!不客气:)
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)
}
})
}