ios - SLServiceTypeFacebook setInitialText no funciona
social-framework (3)
Estoy intentando compartir un texto en Facebook con SLServiceTypeFacebook en IOS 8.3. Pero el cuadro de texto emergente se muestra vacío. Quiero que se muestre con texto en él. Abajo puedes ver el código que uso para eso.
if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook])
{
SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[controller setInitialText:@"First post from my iPhone app"];
[self presentViewController:controller animated:YES completion:Nil];
}
Antes de setInitialText agregue #
antes de esta prueba. Código abajo. Esta trabajando para mi
SLComposeViewController *mySLComposerSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[mySLComposerSheet setInitialText:@"#myInitialTextIsHere"];
[mySLComposerSheet addURL:[NSURL URLWithString:strURL]];
[mySLComposerSheet setCompletionHandler:^(SLComposeViewControllerResult result) {
switch (result) {
case SLComposeViewControllerResultCancelled:
NSLog(@"Post Canceled");
break;
case SLComposeViewControllerResultDone:
NSLog(@"Post Sucessful");
break;
default:
break;
}
}];
[self presentViewController:mySLComposerSheet animated:YES completion:nil];
Parece ser un problema haber instalado la última actualización de la aplicación de Facebook (v29). Eliminándolo "arregla" el problema.
https://developers.facebook.com/bugs/1632385646995079/ https://developers.facebook.com/bugs/962985360399542/
Actualización (3 de junio de 2015)
Bien. Parece que la nueva política de Facebook dice que el llenado previo de un mensaje a través de setInitialText:
es una violación de llenado previo.
https://developers.facebook.com/docs/apps/review/prefill
Así que supongo que la única forma de compartir contenido a partir de ahora es el FBSDKShareDialog
Tienes que amar las eficiencias de Facebook. Estoy un poco tarde en esto, pero puede ayudar a alguien.
#import <FBSDKShareKit/FBSDKShareKit.h>
FBSDKShareLinkContent *content = [[FBSDKShareLinkContent alloc] init];
content.contentURL = self.urlForSocialMedia;
content.contentDescription = self.textForFB;
content.contentTitle = @"Results.";
[FBSDKShareDialog showFromViewController:self
withContent:content
delegate:self];