iphone: unable to post image on wall (facebook)
I am trying to upload a Image to facebook and I gam getting image id uploaded in facebook and after getting that id I am trying to create a request appending that photo ID in grap library but everytime I am getting error. The code worked initially but now its failing
NSString *message = [NSString stringWithFormat:@"For test only --> I think this its uploaded !"];
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/photos"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request addFile:savedImagePath forKey:@"file"];
[request setPostValue:message forKey:@"message"];
[request setPostValue:_accessToken forKey:@"access_token"];
[request setDidFinishSelector:@selector(sendToPhotosFinished:)];
[request setDelegate:self];
[request startAsynchronous];
}
- (void)sendToPhotosFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
NSMutableDictionary *responseJSON = [responseString JSONValue];
NSString *photoId = [responseJSON objectForKey:@"id"];
NSLog(@"Photo id is: %@", photoId);
NSString *urlString = [NSString stringWithFormat:
@"https://graph.facebook.com/%@?access_token=%@", photoId,
[_accessToken stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSURL *url = [NSURL URLWithString:urlString];
ASIHTTPRequest *newRequest = [ASIHTTPRequest requestWithURL:url];
[newRequest setDidFinishSelector:@selector(getFacebookPhotoFinished:)];
[newRequest setDelegate:self];
[newRequest startSynchronous];
}
- (void)getFacebookPhotoFinished:(ASIHTTPRequest *)request
{
NSString *responseString = [request responseString];
NSLog(@"Got Facebook Photo: %@", responseString);
NSMutableDictionary *responseJSON = [responseString JSONValue];
NSString *link = [responseJSON objectForKey:@"link"];
if (link == nil) return;
NSLog(@"Link to photo: %@", link);
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/feed"];
ASIFormDataRequest *newRequest = [ASIFormDataRequest requestWithURL:url];
[newRequest setPostValue:@"I'm learning how to post to Facebook from an iPhone app!" forKey:@"message"];
[newRequest setPostValue:@"Check out the tutorial!" forKey:@"name"];
[newRequest setPostValue:@"This tutorial shows you how to post to Facebook using the new Open Graph API." forKey:@"caption"];
[newRequest setPostVal开发者_StackOverflow社区ue:@"From Ray Wenderlich's blog - an blog about iPhone and iOS development." forKey:@"description"];
[newRequest setPostValue:@"http://google.com" forKey:@"link"];
[newRequest setPostValue:link forKey:@"picture"];
[newRequest setPostValue:_accessToken forKey:@"access_token"];
[newRequest setDidFinishSelector:@selector(postToWallFinished:)];
[newRequest setDelegate:self];
[newRequest startAsynchronous];
}
- (void)postToWallFinished:(ASIHTTPRequest *)request
{
NSString *responseString = [request responseString];
NSMutableDictionary *responseJSON = [responseString JSONValue];
NSString *postId = [responseJSON objectForKey:@"id"];
NSLog(@"Post id is: %@", postId);
UIAlertView *av = [[[UIAlertView alloc]
initWithTitle:@"Sucessfully posted to photos & wall!"
message:@"Check out your Facebook to see!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] autorelease];
[av show];
}
error is
-JSONValue failed. Error trace is: ( "Error Domain=org.brautaset.JSON.ErrorDomain Code=4 \"Valid fragment, but not JSON\" UserInfo=0x6078ae0 {NSLocalizedDescription=Valid fragment, but not JSON}"
Please enlighten me on this.
Regards Ankit
精彩评论