iOS & Facebook: загрузите изображение вместе с комментарием пользователя на стену - PullRequest
0 голосов
/ 11 декабря 2011

У меня есть приложение, оно снимает скриншот, и я хотел бы опубликовать его на стене пользователя вместе с комментарием.

Проблема в том, что я, похоже, перепробовал каждый вариант, и ни один из них не работает:

  • [facebook dialog:@"feed" ...] не работает, потому что вы можете указать только URL, а не UIImage.

  • [facebook requestWithGraphPath ...] не работает, потому что у пользователя нет запроса на комментарий.

  • Я мог бы сначала (молча) попытаться загрузить снимок экрана с помощью requestWithGraphPath, а затем передать только что созданный URL-адрес на dialog, который не работает из-за того, что «изображение FBCDN не разрешено в потоке». Все это, конечно, использует обратные вызовы, которые, в том числе обратный вызов при входе в систему, создают большой беспорядок.

  • Я даже пытался ShareKit, но забыл об этом после того, как приложение странным образом смогло / не смогло войти.

Пожалуйста, как я могу поделиться как изображением, так и комментарием?

Ответы [ 2 ]

0 голосов
/ 11 декабря 2011

Если вы используете последнюю версию iOS SDK от Facebook, в примере приложения Hackbook найдите файл APICallsViewController.m.Есть этот метод, который вы можете публиковать непосредственно с помощью UIImage:

/*
 * Graph API: Upload a photo. By default, when using me/photos the photo is uploaded
 * to the application album which is automatically created if it does not exist.
 */
- (void) apiGraphUserPhotosPost {
    NSString *sourcePath = [[NSBundle mainBundle] resourcePath];
    NSString *file1 = [sourcePath stringByAppendingPathComponent:@"/MP1101frame1002.jpg"];
    UIImage *img = [[[UIImage alloc]initWithContentsOfFile:file1]autorelease];

    [self showActivityIndicator];
    currentAPICall = kAPIGraphUserPhotosPost;
    HackbookAppDelegate *delegate = (HackbookAppDelegate *) [[UIApplication sharedApplication] delegate]; 

    // Download a sample photo
    NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/images/devsite/iphone_connect_btn.jpg"];
    NSData *data = [NSData dataWithContentsOfURL:url];
//    UIImage *img  = [[UIImage alloc] initWithData:data];   //here you can insert your UIImage
    NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                   yourMessageHere, @"message",  //whatever message goes here
                                   img, @"picture",   //img is your UIImage
                                   nil];
    [[delegate facebook] requestWithGraphPath:@"me/photos"
                          andParams:params
                      andHttpMethod:@"POST"
                        andDelegate:self];
}
0 голосов
/ 11 декабря 2011

Если вы этого еще не сделали, вы можете попробовать последнюю ветку разработки ShareKit по этому адресу: https://github.com/Sharekit/Sharekit

Со значительными улучшениями, добавленными сообществом по сравнению с канонической версией.

...