xcode - fbsdkcorekit - Finalización de ios6 de Facebook No se ha llamado al gestor después de iniciar sesión
facebook api ios (2)
Estoy tratando de publicar en Facebook usando openActiveSessionWithPublishPermissions , por lo que si el usuario no está conectado debe ingresar primero y luego publicar el mensaje usando io6 Facebook Dialog nativo.
Lo que encontré es que puedo iniciar sesión, pero no se llama al controlador de finalización.
Otra cosa que noté fue que cuando hago clic en el botón de inicio de sesión nuevamente, se llama al controlador de finalización con el siguiente error FBSessionStateClosedLoginFailed .
Me referí a esta publicación pero todavía no encontré una solución a mi problema.
NSArray *permissions = [NSArray arrayWithObjects:@"publish_stream", nil];
[FBSession openActiveSessionWithPublishPermissions:permissions defaultAudience:FBSessionDefaultAudienceEveryone allowLoginUI:YES completionHandler:
^(FBSession *session, FBSessionState status, NSError *error)
{
switch (status) {
case FBSessionStateOpen:
{
[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {}];
}
break;
default:
break;
}
}];
Deberías tener que agregar esto:
[FBNativeDialogs presentShareDialogModallyFrom:currentController initialText:nil
image:nil url:nil handler:^(FBNativeDialogResult result, NSError *error) {
if (result==FBNativeDialogResultCancelled) {
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Error"
message:@"Sending Cancelled" delegate:self cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
} else if (result==FBNativeDialogResultSucceeded) {
UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Succeed"
message:@"succeed" delegate:self cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
}***}***];
Asegúrese de haber implementado el método handleOpenUrl
.
-(BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
return [[FBSession activeSession] handleOpenURL:url];
}