ios - crear - facebook login swift 4
(com.facebook.sdk.login error 304.) Error con FBSDK 4.2 (5)
Estoy intentando implementar el inicio de sesión con la funcionalidad de Facebook, pero a cambio recibo el siguiente error.
Inicio de sesión fallido con error: la operación no se pudo completar. (error 304 de com.facebook.sdk.login)
Aqui esta mi codigo
- (void)loginWithFacebook {
NSString *const read_actions = @"email";
[[[FBSDKLoginManager alloc] init]
logInWithReadPermissions:@[read_actions] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
{
if (error) {
NSLog(@"Login Failed with error: %@", error.localizedDescription);
}
else if (result.isCancelled)
{
NSLog(@"Login Failed due to Cancel");
}
else
{
if ([result.grantedPermissions containsObject:read_actions]) {
NSLog(@"Permission granted");
}
}
}];
}
Cierre la sesión en el administrador de fblogin cuando esté iniciando sesión justo antes del inicio de sesión como:
fbLoginManager.logOut ()
fbLoginManager.logIn(withReadPermissions: ["public_profile","email"], from: self) { (result, error) -> Void in
Esto puede deberse a que el token de inicio de sesión anterior no se borró. Por lo tanto, antes de iniciar sesión, simplemente cierre la sesión.
NSString *const read_actions = @"email";
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logOut];
[loginManager logInWithReadPermissions:@[read_actions]
handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
NSLog(@"Login Failed with error: %@", error.localizedDescription);
}
else if (result.isCancelled) {
NSLog(@"Login Failed due to Cancel");
} else {
if ([result.grantedPermissions containsObject:read_actions]) {
NSLog(@"Permission granted");
}
}
}];
Parece que estaba haciendo
[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error){}
en un hilo de fondo durante la operación de inicio de sesión. Quité eso y funcionó perfectamente bien.
Actualización de Swift 4:
Cada vez que realice algo como este FBSDKLoginManager().login(withReadPermission: ["email"], from: self) { (result, error) in // Check for error and then login }
inserte este código antes del código de inicio de sesión: FBSDKLoginManager().logOut()
y debería funcionar bien :)
Intente esto, pero está en 2 "Cierre de sesión antes de iniciar sesión en el botón de inicio de sesión acción" permitir inicio de sesión: FBSDKLoginManager = FBSDKLoginManager () login.logOut ()