iOS Facebook 4.0 SDK Compartir la historia de OpenGraph con el error de UIImage

Necesito publicar una historia de OpenGraph que contenga una image generada por el usuario, sin solicitar ningún permiso.

He seguido el tutorial oficial publicado aquí: https://developers.facebook.com/docs/sharing/opengraph/ios

Y aquí está mi código:

NSDictionary *properties = @{@"og:type": @"minidraw-two.illustration", @"og:title": @"Illustration", @"og:description": @"iOS Vector illustration app"}; FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties]; // Construct an FBSDKSharePhoto FBSDKSharePhoto *photo = [[FBSDKSharePhoto alloc] init]; photo.image = image; photo.userGenerated = YES; FBSDKShareOpenGraphAction *action = [FBSDKShareOpenGraphAction actionWithType:@"minidraw-two.create" object:object key:@"minidraw-two:illustration"]; [action setPhoto:photo forKey:@"image"]; FBSDKShareOpenGraphContent *content = [FBSDKShareOpenGraphContent new]; content.action = action; content.previewPropertyName = @"minidraw-two:illustration"; [FBSDKShareDialog showFromViewController:viewController withContent:content delegate:self]; 

Al publicar este contenido, obtengo el siguiente error:

Error Domain = com.facebook.Facebook.platform Code = 100 "No se pudo completar la operación. (Com.facebook.Facebook.platform error 100.)" UserInfo = 0x174070f00 {error_reason = Falta 'tipo' o 'fbsdk: create_object 'para el object: image, error_description = Ocurrió un error al compartir una acción., app_id =, error_code = 100}

No estoy realmente seguro de qué significa este error. He comprobado StackOverflow, los documentos de Facebook y no he encontrado nada.

Por favor aconséjame.

Después de leer este informe de errores de FB , tengo que compartir la foto sin ningún error. La key es adjuntar la foto al object Open Graph en lugar de la acción .

 // Add the photo to the OG object [object setPhoto:photo forKey:@"og:image"]; 

La foto aún no muestra el ancho completo, pero FB lo ha reconocido como un error válido en v4.0.1 y actualizaré esta respuesta tan pronto como escuche más de ellos.

ACTUALIZACIÓN: según FB, es por layout que las fotos no mostrarán el ancho completo en las historias de Open Graph.

Si cambias

[FBSDKShareDialog showFromViewController:viewController withContent:content delegate:self];

a

[FBSDKShareAPI shareWithContent:content delegate:self];

y use su vieja variante [action setPhoto:photo forKey:@"image"]; el código también funcionará

2 fatuhoku: en mi opinión, usar FBSDKShareAPI es mejor porque 1) tu aplicación no cambia a la aplicación FB para presentar el dialog 2) controlas todos los datos que deseas compartir / publicar en FB desde tu aplicación. Por ejemplo, mi aplicación solo comparte sus datos internos y no quiero que el usuario agregue comentarios en el cuadro de dialog. 3) conservas el estilo de la interfaz de usuario de tu aplicación, por ejemplo, los colors de la pantalla, pero los cuadros de dialog de FB tienen los propios. Sí, deberías hacer más trabajo luego cuando FBSDKShareDialog pero lee lo que digo arriba;)

Esto ha sido arreglado. Tanto FBSDKShareDialog como FBSDKShareAPI funcionan igual ahora. Informe de error relevante aquí . Documentos oficiales también actualizados.