update fbsdkloginkit fbsdkcorekit ios facebook-graph-api

fbsdkloginkit - IOS Facebook SDK 3 subir imagen con mensaje



fbsdkcorekit (3)

Estoy usando el siguiente código para cargar una imagen en el muro de Facebook:

UIImage *img = [UIImage imageNamed:@"logoits.png"]; [FBRequestConnection startForUploadPhoto:img completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { NSLog(@"Facebook posting %@",result); NSLog(@"Facebook posting %@",error); }];

Funciona como se esperaba, pero me gustaría agregar un mensaje o título a esta foto cargada, y mirando la documentación de FBRequestConnection no hay ningún ejemplo de eso. http://developers.facebook.com/docs/sdk-reference/iossdk/3.0/class/FBRequestConnection/

¿Cómo subo una imagen con mensaje?



En el SDK 3.0 de Facebook solo se puede publicar una imagen usando los métodos dados, y para otras acciones necesitas usar el gráfico de un pi.

Por lo tanto, para publicar una imagen con un mensaje, debe utilizar graph-api. Aquí está la línea de códigos que le permite publicar una imagen con mensaje en la línea de tiempo de los usuarios.

NSMutableDictionary* params = [[NSMutableDictionary alloc] init]; [params setObject:@"your custom message" forKey:@"message"]; [params setObject:UIImagePNGRepresentation(_image) forKey:@"picture"]; _shareToFbBtn.enabled = NO; //for not allowing multiple hits [FBRequestConnection startWithGraphPath:@"me/photos" parameters:params HTTPMethod:@"POST" completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (error) { //showing an alert for failure [self alertWithTitle:@"Facebook" message:@"Unable to share the photo please try later."]; } else { //showing an alert for success [UIUtils alertWithTitle:@"Facebook" message:@"Shared the photo successfully"]; } _shareToFbBtn.enabled = YES; }];

y también asegúrese de que _shareToFbBtn esté habilitado solo después de que el inicio de sesión sea exitoso.


La solución de Linesvishy funciona a la perfección y también vale la pena tener en cuenta que si usaba el SDK 3.1 de Facebook y usaba el método.

FBRequest *request = [FBRequest requestForUploadPhoto:_imageToShare];

Puedes usar las siguientes líneas para reemplazarlo:

NSMutableDictionary* params = [[NSMutableDictionary alloc] init]; [params setObject:_textToShare forKey:@"message"]; [params setObject:_imageToShare forKey:@"picture"]; FBRequest *request = [FBRequest requestWithGraphPath:@"me/photos" parameters:params HTTPMethod:@"POST"];

¡Espero eso ayude! ¡Feliz codificación!