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?
Aquí hay un ejemplo que publica e imagen y una nota:
http://developers.facebook.com/docs/tutorials/ios-sdk-tutorial/publish-open-graph-story/
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!