developers crear app ios objective-c facebook facebook-login

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 ()