fbsdkcorekit descargar ios facebook facebook-graph-api ios5 facebook-feed

descargar - Cómo adjuntar 5 imágenes a una publicación de un feed de Facebook usando Facebook ios SDK 3.0



fb api (5)

Facebook eliminó varias imágenes en una publicación hace un tiempo. Cuando podías hacerlo, la gente creaba "pancartas" que consistían en múltiples imágenes una al lado de la otra. Ahora solo se muestra 1 foto para cualquier publicación de muro.

Puedes publicar más fotos, pero no estarán seguras por defecto. Facebook agregará un enlace "más", aunque es posible que también lo hayan eliminado.

Fuente: Cómo publicar una publicación en el muro con 2 fotos.

Así que no podrás alimentar macetas con múltiples imágenes. Mejor manera es combinar 5 imágenes en una imagen.

Estoy intentando publicar en el feed del usuario algo como esto (inicialmente muestra solo una imagen pero cuando haces clic en "mostrar más" ves las cinco imágenes)

Mi código se ve así:

NSMutableArray *properties = [[NSMutableArray alloc] initWithCapacity:5]; NSMutableArray *media = [[NSMutableArray alloc] initWithCapacity:5]; for (MyObject *object in self.myObjects) { [properties addObject:[NSDictionary dictionaryWithObjectsAndKeys:object.name,@"text", object.link,@"href", nil]]; NSString *imageUrlString = object.url.absoluteString; [media addObject:[NSDictionary dictionaryWithObjectsAndKeys:@"image",@"type", imageUrlString,@"src", object.link,@"href", nil]]; } NSData *propertyData = [NSJSONSerialization dataWithJSONObject:properties options:NSJSONWritingPrettyPrinted error:nil]; NSString *propertiesString = [[NSString alloc] initWithData:propertyData encoding:NSUTF8StringEncoding]; NSData *mediaData = [NSJSONSerialization dataWithJSONObject:media options:NSJSONWritingPrettyPrinted error:nil]; NSString *mediaString = [[NSString alloc] initWithData:mediaData encoding:NSUTF8StringEncoding]; NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:myAppID, @"app_id", link, @"link", name, @"name", caption, @"caption", propertiesString, @"properties", mediaString, @"media", description, @"description", nil]; [FBRequestConnection startWithGraphPath:@"me/feed" parameters:params HTTPMethod:@"POST" completionHandler:completionHandler];

Esto solo publica una imagen pero necesito publicar las 5 de ellas.

EDITAR: ¡Ya estamos publicando 5 imágenes en una publicación a través de la biblioteca janrain engagement, así que es factible!


Creo que las solicitudes de lotes son lo que estás buscando.

Desde este developers.facebook.com/docs/reference/api/batch :

Si su aplicación necesita la capacidad de acceder a cantidades importantes de datos de una sola vez, o si necesita realizar cambios en varios objetos a la vez, a menudo es más eficiente realizar sus consultas en lugar de realizar múltiples solicitudes HTTP individuales.

Para habilitar esto, la API de Graph admite Batching. El procesamiento por lotes le permite pasar instrucciones para varias operaciones en una sola solicitud HTTP. También puede especificar dependencias entre operaciones relacionadas (descritas en una sección a continuación). Facebook procesará cada una de sus operaciones independientes en paralelo y procesará sus operaciones dependientes de manera secuencial. Una vez que se hayan completado todas las operaciones, se le devolverá una respuesta consolidada y se cerrará la conexión HTTP.

...

Cargando datos binarios

Los datos binarios se pueden especificar como parte de la parte multipart / mime de la solicitud de API por lotes. La API Graph de lotes permite cargar varios elementos binarios como parte de una llamada por lotes. Para hacer esto, debe agregar todos los elementos binarios como archivos adjuntos multiparte / mimo a su solicitud, y necesita que cada operación haga referencia a sus elementos binarios utilizando la propiedad "attachment_files" en la operación. La propiedad "attachment_files" puede tomar una lista de nombres de adjuntos separados por comas en su valor.

Aquí hay un link a un tutorial para crear solicitudes por lotes utilizando el SDK de iOS.


Deberá utilizar la API de Facebook Connect directamente: el SDK de iOS no expone este tipo de funcionalidad.

Debería echar un vistazo a la sección de Publicaciones de Graph Photo API, que sugiere esta URL para cargar una imagen (no olvide solicitar la credencial publish_stream):

POST https://graph.facebook.com/USER_ID/photos message=[optional description] source=[the image''s data] place=[optional image''s location]

Con el Facebook Connect SDK de iOS que nos daría esta llamada, dado que tienes una instancia de Facebook llamada facebook y una instancia de UIImage llamada image:

[facebook requestWithMethodName:@"/USER_ID/photos" andParams:[NSDictionary dictionaryWithObjectsAndKeys: UIImageJPEGRepresentation(image, 0.7), @"source", @"My puppy is so cute!!!", @"message", nil] andHttpMethod:@"POST" andDelegate:self];


Puede cargar varias imágenes en una acción de Open Graph, como se describe aquí: https://developers.facebook.com/docs/opengraph/usergeneratedphotos/

Código de muestra desde allí:

https://graph.facebook.com/me/nyccookbook:cook? recipe=http://www.yourdomain.com/pizza.html& image[0][url]=http://www.yourdomain.com/images/my_camera_pizza_pic.jpg& image[0][user_generated]=true& image[1][url]=http://www.yourdomain.com/images/my_camera_soda_pic_2.jpg& image[1][user_generated]=true& access_token=YOUR_ACCESS_TOKEN


ok nueva idea ¿qué tal si envías a los cinco en un bucle, pero mantienes el estado del texto y todo lo demás igual? ¿No es posible que Facebook los combine en 1 post?