Cancel image upload to Facebook from iOS - objective-c

I have an app that uploads an image to Facebook. this is the part of my code that does that:
[[self appDelegate] facebooking]; // checke that the user is loged in
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
labeledImage, #"source",
FB_IMG_POST_TITLE,#"message",
nil];
[ [[self appDelegate] getFacebookVar] requestWithGraphPath:[NSString stringWithFormat: #"/me/photos?access_token=%#", self.appDelegate.getFacebookVar.accessToken] andParams:params andHttpMethod:#"POST" andDelegate:self];
I want to
A) make the upload process a different thread.
B) Give the user the option to cancel the upload.
How would I do that?

Firstly, you are not using the facebook SDK correctly. You should not need to explicitly add the access_token. Please see the sample code for this.
You shouldn't need a different thread, the request will be handled asynchronously. What made you think you need to do this?
I'm not sure you can do B) by default. You could change the sdk source to give access to the NSURLConnection (which you can cancel).

Related

How to get share dialog box with parse.com and facebook 3.0 sdk

I can't seem to find information on how to open share dialog box with parse sdk which includes fb 3.0. I am able to login with facebook and actually found a way to post with out the dialog box but still would like to have the dialog box so that people can add comments and it comes out with the image on facebook. This is what i have so far.
#"publish_stream",#"publish_actions" allows me to publish with out the dialog box
logInController.facebookPermissions = [NSArray arrayWithObjects:#"user_about_me",#"friends_about_me",#"publish_stream",#"publish_actions", nil];
this is to publish
PF_FBRequest *request = [PF_FBRequest requestForPostStatusUpdate:[self.Excerpt objectForKey:#"text"]];
[request startWithCompletionHandler:^(PF_FBRequestConnection *connection, id result, NSError *error){
NSLog(#"error %#",error);
}];
I found the code to open the dialog box from facebook website but i am not sure how to get an instance of the PF_Facebook object so i can open the dialog box. I can try to do
PF_Facebook *fb = [[PF_Facebook alloc]initWithAppId:<#(NSString *)#> andDelegate:<#(id<PF_FBSessionDelegate>)#>;
but that doesn't seem to be right because i already initialize this in the appdelegate
//Update
I am able to get the dialog box using this code
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
#"Facebook SDK for iOS", #"name",
#"Build great social apps and get more installs.", #"caption",
#"The Facebook SDK for iOS makes it easier and faster to develop Facebook integrated iOS apps.", #"description",
#"https://developers.facebook.com/ios", #"link",
#"https://raw.github.com/fbsamples/ios-3.x-howtos/master/Images/iossdk_logo.png", #"picture",
nil];
//publishes text on facebook
PF_FBSession *session = [PFFacebookUtils session];
PF_Facebook *fb = [[PF_Facebook alloc]initWithAppId:session.appID andDelegate:nil];
[fb dialog:#"feed" andParams:params andDelegate:self];
But the problem is that the person gets the login page in the dialog box even though he is authenticated already in the app
Any suggestions would be greatly appreciated!
Thank You!
To set up a PF_Facebook object you need to also provide the access token and expiration date information as below:
PF_FBSession *session = [PFFacebookUtils session];
PF_Facebook *facebook = [[PF_Facebook alloc] initWithAppId:session.appID
andDelegate:nil];
// Store the Facebook session information
facebook.accessToken = session.accessToken;
facebook.expirationDate = session.expirationDate;
Rather than creating a new session, you can just use the "facebook" class method to get a configured PF_Facebook object
PF_Facebook *facebook = [PFFacebookUtils facebook];
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithObjectsAndKeys:#"Check out this great app", #"message", nil]:
[facebook dialog:#"apprequests" andParams:parameters andDelegate:nil];

iOS5 and Facebook SDK 3.01/Facebook feed

I'm going crazy. I've installed the Facebook SDK 3.01. I've added it to my frameworks. I've imported it into my view controller. I'm using the code from the Facebook developers' page, as follows:
UIImage *pic = [self createImage];
NSString *list = self.haiku_text.text;
NSString *kAppId=#"xxxxxxxxx0507";
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:kAppId, #"app_id",nil, #"link", pic, #"picture",#"Haiku", #"name",nil, #"caption",#"Maybe he'll love me if I give him a haiku....",#"description",nil];
[facebook dialog:#"feed"
andParams:params
andDelegate:self];
And no matter what I do I get a use of undeclared identifier 'facebook' error. This suggests to me that facebook needs to be an instantiation of some class or property--but I've been looking for what feels like millennia and I can't find out anywhere what that class or property is. What I've read on stackoverflow makes me think it used to have something to do with FBConnect, but that doesn't seem to exist in the new Facebook SDK.
Any thoughts that will help me keep at least a little of the hair I'm tearing out?

Post to Friend's Wall with iOS Facebook SDK

Is it possible to use the iOS Facebook SDK's dialog method to post to the active user's friends' walls? That is, assuming the correct permissions have been granted?
Using the dialog method, with "feed" as the action, only seems to allow me to post to the user's stream, not to anyone elses. What am I missing?
[facebook dialog:"feed" andParams:... andDelegate:self]
The params only specify the content of the post; there doesn't seem to be any way to specify the profile I want to post to.
Just use the following code:
[facebook requestWithGraphPath:#"[IdOfFriend]/feed" andParams:... andHttpMethod:#"POST" andDelegate:self];
post on friends wall through graph path no more works
your feed action works.. have params like
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
#"Checkout my APP_NAME", #"name",
#"Come visit my APP_NAME", #"caption",
[NSString stringWithFormat:#"I just joined APP_NAME Can you?"], #"description",
#"http://www.friendsmash.com/images/logo_large.jpg", #"picture",
#"FRIEND'S_FB_USER_ID", #"to",
// Add the link param for Deep Linking
[NSString stringWithFormat:#"https://YOUR_WEB_LINK.com/"], #"link",
nil];
Cheers...!

Broken (grey) thumbnails in Facebook mobile feed?

I have an iOS app that posts to users FB feeds with a link, description, and image.
If I check posts that have been made through my app in a full sized browser, I can see that everything, including the thumbnail is showing as expected.
The problem is if I open the FB feed from a mobile browser or the FB iOS app, I get grey boxes instead of thumbnails.
I have tried this multiple times and I get the grey box in mobile pages every single time and all of the Facebook debug data for the link checks out as far as I can see.
The following is the objective-c code that posts the Feed to FB.
NSMutableDictionary *params = [[NSMutableDictionary alloc] init];
[params setObject:self.captionTextView.text forKey:#"message"];
[params setObject:[NSString stringWithFormat:#"%#'s photo on Wander", [appDelegate.prefs valueForKey:#"firstName"]] forKey:#"name"];
[params setObject:shortUrl forKey:#"link"];
NSString *imageURL = [NSString stringWithFormat:#"http://%#/mobile/photo.php?p=%#", appDelegate.apiHost, photoParams];
[params setObject:imageURL forKey:#"picture"];
[params setObject:[NSString stringWithFormat:#"%#, %#", [appDelegate.prefs valueForKey:#"cityName"], [appDelegate.prefs valueForKey:#"countryName"]] forKey:#"caption"];
[params setObject:[NSString stringWithFormat:#"I'm using Wander to explore %# with %# as a local guide!", [matchData valueForKey:#"cityName"], [matchData valueForKey:#"firstName"]] forKey:#"description"];
[appDelegate.facebook requestWithGraphPath:[NSString stringWithFormat:#"%#/feed", fbId] andParams:params andHttpMethod:#"POST" andDelegate:self];
[params release];
This is the test URL: http://maruta.wanderwith.us/viewPhoto/index/My0zNA (this might disappear because it's on a development server and I regularly clear data, I'll try my best to keep it live until this gets resolved)
Am I missing something?
I ran into the same situation. Turns out it was the question mark in your URL. Facebook passes your image URL through their own proxy. If your URL contains "?", then it doesn't work through the mobile feed somehow.
Your server expects url in this format: http://hostname/mobile/photo.php?p=1234567889. If you change this to this format: http://hostname/mobile/photo/1234567889, then Facebook will be happy. try mod rewrite if you are using apache.

how to publish photo on application profile page using REST api of facebook

i am uploading photo to application(or like) profile page. But it will show error message
"error_code":240,"error_msg":"Requires a valid user is specified (either via the session or via the API parameter for specifying the user."
i am using REST API for facebook.
And this code
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
img, #"picture",
kAppId,#"uid",
nil];
[_facebook requestWithMethodName:#"photos.upload"
andParams:params
andHttpMethod:#"POST"
andDelegate:self];
where kAppId is applicatino ID.
if i remove #"Uid" parameter then photo uploaded to my(user) photo album.
this thing is possible in web that user can upload a photo to like page as news feed.
how we can do it through REST APi
Thanks
You may want to try urlencoding your params using
[params dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];