我正在尝试将图片上传到Facebook,并且我在Facebook上获取图片ID,并且在获得该ID之后,我正在尝试创建一个请求,将该照片ID附加到grap库中但每次我都收到错误。代码最初工作但现在失败了
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 setPostValue:@"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];
}
错误是
-JSONValue失败。错误跟踪是:( “Error Domain = org.brautaset.JSON.ErrorDomain Code = 4 \”有效片段,但不是JSON \“UserInfo = 0x6078ae0 {NSLocalizedDescription =有效片段,但不是JSON}”
请赐教我。
此致 ANKIT