ios6 integración de facebook iniciar sesión siempre FBSessionStateClosedLoginFailed nunca se abre
esta pregunta es muy similar aFacebook SDK para iOS, en dispositivo iOS 4.0, pero como no puedo hacer comentarios allí, abro una nueva pregunta. Creo que las preguntas no son las mismas:
Al intentar actualizar la integración de Facebook de mi aplicación en Facebook 3.1, no obtengo la sesión de Facebook para abrir la Devolución de llamada sessionStateChanged siempre termina en FBSessionStateClosedLoginFailed. en mi configuración tengo la devolución de llamada en mi appdelegate
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
// attempt to extract a token from the url
// return [self.session handleOpenURL:url];
return [FBSession.activeSession handleOpenURL:url];
}
¡Pero nunca se llama! ¿No debería ser llamado? Seguí la documentación de facebook y llamé.
- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
NSArray *permissions = [NSArray arrayWithObjects:@"publish_actions", nil];
return [FBSession openActiveSessionWithPublishPermissions:permissions
defaultAudience:FBSessionDefaultAudienceFriends
allowLoginUI:allowLoginUI
completionHandler:^(FBSession *session,
FBSessionState state,
NSError *error) {
[self sessionStateChanged:session
state:state
error:error];
}];
}
Yo tambien lo intenté
openActiveSessionWithReadPermissions
connil
para los permisos como en el ejemplo de tutorial de Facebook con la intención de volver a autorizar el permiso publish_actions más adelante. mismo resultado: FBSessionStateClosedLoginFailed otra vez.
Incluso traté de llamar
ACAccountStore *accountStore;
ACAccountType *accountTypeFB;
if ((accountStore = [[ACAccountStore alloc] init]) &&
(accountTypeFB = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook] ) ){
NSArray *fbAccounts = [accountStore accountsWithAccountType:accountTypeFB];
id account;
if (fbAccounts && [fbAccounts count] > 0 &&
(account = [fbAccounts objectAtIndex:0])){
[accountStore renewCredentialsForAccount:account completion:^(ACAccountCredentialRenewResult renewResult, NSError *error) {
//we don't actually need to inspect renewResult or error.
if (error){
}
}];
}
}
antes de intentar abrir la sesión, pero nunca la abro en mi dispositivo ios6 (iPhone 4s). en la aplicación me piden permiso, pero luego no pasa nada porque la sesión siempre tiene el estado FBSessionStateClosedLoginFailed! mi devolución de llamada para el estado de la sesión es
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
}
break;
case FBSessionStateClosed:
NSLog(@"FBSessionStateClosed");
case FBSessionStateClosedLoginFailed:
NSLog(@"FBSessionStateClosedLoginFailed");
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
[[NSNotificationCenter defaultCenter]
postNotificationName:FBSessionStateChangedNotification
object:session];
if (error) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"facebook Hinweis"
message:@"facebook Login nicht möglich, bitte versuchen Sie es erneut."
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
NSLog(@"Facebook session error: %@", error.localizedDescription);
}
}
con el facebook 3.0 en ios 5 nunca tuve un problema, por lo que mi aplicación de facebook está configurada correctamente. Realmente agradecería cualquier ayuda que me permita abrir la sesión de Facebook, no pensé en encontrar estos problemas con Facebook 3.1 y los documentos no me están ayudando en este momento, gracias