ios facebook-graph-api facebook-graph-api-v2.0 facebook-messages facebook-sdk-3.14.x

ios - Enviar un enlace con el cuadro de diálogo de Facebook ignorando todos los parámetros



facebook-graph-api facebook-graph-api-v2.0 (2)

Aunque este error se corrigió en junio de 2014, aún es posible tener problemas similares con el último código de ejemplo de Facebook. En el último ejemplo "FBShareSample" y en la documentación de Facebook "Compartir en iOS" utilizan el método

[FBDialogs presentShareDialogWithLink:....]

que solo usa el enlace de los parámetros y ninguno del resto de los parámetros (aunque el ejemplo de retroceso Diálogo de alimentación realmente usa todos los parámetros). Para usar todos los parámetros en el cuadro de diálogo Compartir, debe usar

[FBDialogs presentShareDialogWithParams:...]

Estoy tratando de compartir / enviar un enlace a mis amigos a través del nuevo Diálogo de Mensajes de Facebook que se implementó en v2.0.

He seguido la dirección de los documentos: https://developers.facebook.com/docs/ios/share#message-dialog-getting-started y esto es lo que he intentado:

[FBDialogs presentMessageDialogWithLink:[NSURL URLWithString:@"http://XXX.net/"] name:@"NAME" caption:@"CAPTION" description:@"DESCRIPTION" picture:nil clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { if(error) { // An error occurred, we need to handle the error // See: https://developers.facebook.com/docs/ios/errors NSLog([NSString stringWithFormat:@"Error messaging link: %@", error.des cription]); } else { // Success NSLog(@"result %@", results); } }];

y esto: (debería ser lo mismo)

FBLinkShareParams *params = [[FBLinkShareParams alloc] init]; params.link = [NSURL URLWithString:@"http://xxx.net/"]; params.name = @"NAME"; params.caption = @"CAPTION"; //params.picture = [NSURL URLWithString:@"http://upload.wikimedia.org/wikipedia/en/c/cd/Aller_Media_logo.png"]; params.linkDescription = @"DESCRIPTION"; [FBDialogs presentMessageDialogWithParams:params clientState:nil handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { if(error) { // An error occurred, we need to handle the error // See: https://developers.facebook.com/docs/ios/errors NSLog([NSString stringWithFormat:@"Error messaging link: %@", error.description]); } else { // Success NSLog(@"result %@", results); } }];

Ambos métodos abren mi aplicación de mensajería de Facebook con el diálogo completado con mis parámetros. PERO cuando he enviado el mensaje, todo, excepto el enlace, se HIZO al final del receptor.

Por lo que entiendo, el usuario no debería tener que iniciar sesión a través de la aplicación para poder enviar mensajes desde el diálogo de mensajes de Facebook.

¿Alguien tiene una idea de lo que está pasando aquí? ¿Es esto un error de Facebook?

EDITAR: Esto se ha confirmado como un error de Facebook: https://developers.facebook.com/bugs/1547232035503916


Noté que depende de la URL que estás enviando. Si la URL contiene Facebook Open Graph, se muestran los parámetros de la URL Open Graph y esos parámetros sobrescriben los que usted colocó.

Por ejemplo, estoy tratando de compartir URL en mi App Store. Todos los enlaces de App Store contienen Facebook Open Graph por lo que no funciona.

Creo que Facebook recomienda usar la publicación de historias personalizadas de Open Graph en este caso.