Я пытаюсь внедрить вход в Facebook с помощью своего приложения Swift. Я смог войти в приложение просто отлично. Тем не менее, я столкнулся с проблемой, когда я зарегистрировал пользователя. Я получаю ошибку the supplied Facebook session token is expired or invalid
. Как я могу создать новый токен? Вот код:Идентификатор поставленного токена Facebook истек или недействителен
if let accessToken: FBSDKAccessToken = FBSDKAccessToken.currentAccessToken() {
PFFacebookUtils.logInInBackgroundWithAccessToken(accessToken, block: {
(user: PFUser?, error: NSError?) -> Void in
if user != nil {
print("User logged in through Facebook!")
self.navigateToInGame(true)
} else {
print("Uh oh. There was an error logging in.")
let manager = FBSDKLoginManager()
manager.logOut()
manager.logInWithReadPermissions(["public_profile", "email"], fromViewController: self, handler: { (result, error) -> Void in
if let error = error {
print(error.localizedDescription)
}
if result.isCancelled {
print("Cancelled")
} else {
print("Logged in")
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
self.performSegueWithIdentifier("signUp", sender: self)
} else {
print("User logged in through Facebook!")
self.navigateToInGame(true)
}
} else {
print("Uh oh. The user cancelled the Facebook login.")
}
}
})
if accessToken.expirationDate.compare(NSDate()) == NSComparisonResult.OrderedAscending {
FBSDKLoginManager.renewSystemCredentials({ (result, error) -> Void in
if result != .Renewed {
// Do further procedures once renewed is failed or rejected
print("Token didn't renew")
}
})
}
}
})
} else {
let permissions = ["public_profile", "email"]
PFFacebookUtils.logInInBackgroundWithReadPermissions(permissions, block: {
(user: PFUser?, error: NSError?) -> Void in
if let user = user {
if user.isNew {
print("User signed up and logged in through Facebook!")
self.performSegueWithIdentifier("signUp", sender: self)
} else {
print("User logged in through Facebook!")
self.navigateToInGame(true)
}
} else {
print("Uh oh. The user cancelled the Facebook login.")
}
})
}
}
ОБНОВЛЕНО КОД.
я получаю следующее в журнале:
«Ой-ой, ошибка при входе в». Позволяет мне войти в систему через FB. Я нажимаю «Продолжить» в Facebook.
Log чтений «вошел в»
Log читает «Ой-ой, пользователь отменил логин Facebook и пинает меня обратно на экран входа в системе. Пользователь, однако, по-прежнему создается в синтаксическом анализе. Я хотел бы перейти к моему SIGNUP Segue после подписания в первый раз.
Спасибо за ответ! Я помещаю этот код прямо там, где ошибка регистрируется, но не получает переданный оператор if. Вы знаете, как быстро преобразовать этот ответ? http://stackoverflow.com/questions/29421659/reset-facebook-token-reference-facebook-sdk-4-0. Я думаю, что это может быть ответ. Мне нужно выйти из системы и сбросить токен – winston
@james Я только что обновил свой ответ. Пожалуйста, возьмите его для справки. Ура! – Allen
Большое вам спасибо за это. Я надеюсь, что это работает, потому что пользователь действительно не «вышел из системы» (я удалил пользователя из таблицы User для тестирования, а затем удалил приложение в FB). Я дам вам знать, если это сработает! – winston