Опубликовать изображение в Facebook с помощью graph api

#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];