looks like it might be an FB bug. sometimes they save to the albums sometimes not Unable to post image into facebook using SLComposeViewController?
How to post to my Facebook wall without saving the image to a photo album
-
18-03-2022 - |
Question
I'm using the following method to share an image and a url to the user's Facebook wall. The problem is that because I'm adding an image with the post it ends up being saved in a Facebook photo album. Perhaps this is the default behaviour, although I swear at one point it was posting just to the wall with a photo and not to a photo album.
thanks for any help
- (IBAction)shareAction:(id)sender {
SLComposeViewController * fbController = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
[fbController setInitialText:@"App Name"];
NSIndexPath* indexPath = [tableView indexPathForCell:sideSwipeCell];
// NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
// output id of selected deal
#ifdef DEBUG
NSLog(@"deal id for selected row is %@", [[displayItems objectAtIndex:indexPath.row] objectForKey:@"id"]);
#endif
// display the youdeal deal image
link = [[displayItems objectAtIndex:indexPath.row] objectForKey:@"link"];
// download the youdeal deal image for FB posting
NSURL *url = [NSURL URLWithString:[[displayItems objectAtIndex:indexPath.row] objectForKey:@"image"]];
NSLog(@"url to image share %@", url);
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
NSLog(@"data to image share %@", data);
UIImage *tmpImage = [[UIImage alloc] initWithData:data];
NSLog(@"tmpImage to image share %@", tmpImage);
ydImage = tmpImage;
NSLog(@"ydimageview.image %@", ydImage);
// [NSThread detachNewThreadSelector:@selector(downloadAndLoadImage) toTarget:self withObject:nil];
[fbController setInitialText:@"Check out this link."];
[fbController addURL:[NSURL URLWithString:link]];
[fbController addImage:ydImage];
SLComposeViewControllerCompletionHandler __block completionHandler=^(SLComposeViewControllerResult result){
[fbController dismissViewControllerAnimated:YES completion:nil];
switch(result){
case SLComposeViewControllerResultCancelled:
default:
{
#ifdef DEBUG
NSLog(@"User Cancelled.");
#endif
[self removeSideSwipeView:YES];
}
break;
case SLComposeViewControllerResultDone:
{
#ifdef DEBUG
NSLog(@"Posted");
#endif
[self removeSideSwipeView:YES];
CustomAlertView *fbAlert = [[CustomAlertView alloc] initWithTitle:@"App Name" message:@"Facebook Post Successful!" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil, nil];
[fbAlert show];
}
break;
}};
[fbController setCompletionHandler:completionHandler];
[self presentViewController:fbController animated:YES completion:nil];
}
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow