#iphone #facebook #facebook-graph-api #ios5
#iPhone #Facebook #facebook-graph-api #ios5
Вопрос:
Я использую facebook graph api для публикации изображений и сообщений в Facebook. Я воспользовался помощью из руководства Raywenderlich. До последних двух недель он работал нормально. Но теперь это создает проблему для меня. Я получаю всю информацию о профиле Facebook.
UIImage *image = [UIImage imageNamed:@"no_image.png"];
data = UIImagePNGRepresentation(image);
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/me/photos"];
NSString *message = [couponInfoDictionary objectForKey:@"offerTitle"];
message = [message stringByAppendingString:@"n"];
NSString *offerSlogan = [couponInfoDictionary objectForKey:@"offerSlogan"];
message = [message stringByAppendingString:[NSString stringWithFormat:@"%@",offerSlogan]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setData:data forKey:@"file"];
[request setPostValue:message forKey:@"message"];
[request setPostValue:_accessToken forKey:@"access_token"];
[request setDidFinishSelector:@selector(sendToPhotosFinished:)];
[request setDidFailSelector:@selector(requestError:)];
[request setDelegate:self];
[request startAsynchronous];
- (void)sendToPhotosFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
NSLog(@"response string before photo id %@",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]];
NSLog(@"sendToPhotosFinished = %@",urlString);
NSURL *url = [NSURL URLWithString:urlString];
ASIHTTPRequest *newRequest = [ASIHTTPRequest requestWithURL:url];
[newRequest setDidFinishSelector:@selector(getFacebookPhotoFinished:)];
[newRequest setDelegate:self];
[newRequest startAsynchronous];
}
Но когда я публикую изображение, оно выдает ошибку
{"error":{"message":"Error validating application.","type":"OAuthException"}}
Photo id is: (null)
sendToPhotosFinished = https://graph.facebook.com/(null)?access_token=ABACesEZBKr3gBALqa4yE2QAnJbNbGvQKa9iCm53GmTwHQYoyaxqAqmdLj0gw9uWCbyhP5sV7N6uZBjaFDpD6v6G1C7GcZCjvcZBPqt7b1ZAxKtDvepN8camp;expires_in=4778
Got Facebook Photo: {"error":{"message":"(#803) Some of the aliases you requested do not exist: (null)","type":"OAuthException"}}
Я потратил свои три дня, чтобы решить эту проблему. Но все еще не понимаю .. как это решить?
Ответ №1:
используйте этот @»117795728310 / photos» вместо меня / photos
В третьей строке вашего приведенного выше кода ,
Ответ №2:
Идентификатор фотографии: (null) 2012-02-16 11:59:11.298 FBFun[2330:207] Получил фотографию на Facebook:
{
"error": {
"message": "(#803) Some of the aliases you requested do not exist: (null)",
"type": "OAuthException",
"code": 803
}
}
Я использовал следующий код, и он работает…
NSURL *url = [NSURL URLWithString:@"https://graph.facebook.com/USER_FACEBOOK_PROFILE_ID/photos"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"img1" ofType:@"jpg"];
nsstring *accessToken = @"AAACWZA..............................................Ts28iSOhGoOhe9qAgpZCL7AZDZD";
[request addData:[[NSUserDefaults standardUserDefaults]dataForKey:@"image1"] forKey:@"file"];
[request setPostValue:@"Testing App For iPhone, please don't comment..." forKey:@"message"];
[request setPostValue:accessToken forKey:@"access_token"];
[request setDelegate:self];
[request startAsynchronous];