Как использовать метод диалога FBConnect для публикации UIImage на моей стене? - PullRequest
1 голос
/ 24 марта 2011

( Примечание: Я просмотрел все это, и есть множество примеров того, как разместить URL-адрес изображения в диалоге, и несколько примеров того, как разместить данные изображения. прямо в фотоальбом, но я не пытаюсь сделать ни то, ни другое.)

Я могу достаточно легко опубликовать изображение, которое хранится в Интернете, с кодом, подобным следующему:

NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
        @"This is what I say about kittens!", @"message",
        @"Kittens!", @"name",
        @"I'm feeling fuzzy", @"caption",
        @"You, too, can feel fuzzy, with FuzzyKitten™", @"description",
        @"http://example.com/fuzzykitten.html", @"link",
        @"http://placekitten.com/200/150", @"picture",
        nil];

[facebook dialog: @"feed"
            andParams: params
            andDelegate: self];

И все отлично работает. Проблема в том, что я хотел бы заменить:

        @"http://placekitten.com/200/150", @"picture",

с чем-то вроде:

        [UIImage imageNamed: @"myImage.png"], @"picture",

что, конечно, не правильно. Итак, мой вопрос: если у меня есть изображение в форме UIImage, как мне загрузить его в словарь параметров для передачи в метод диалога?

Спасибо!

РЕДАКТИРОВАТЬ: Это клиентское приложение для iPhone, для которого нет сервера, так что, хотя загрузка изображения в FB как часть-1 процесса из двух частей в порядке, я сейчас не вижу как найти URL загруженного изображения. Еще раз спасибо!

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Вы не можете напрямую загрузить изображение на стену, при публикации на стене вы можете просто связать изображение с ним.
Итак, вам нужно сначала загрузить UIImage куда-нибудь. У вас есть 2 варианта:
1. Загрузите на свой / некоторый сервер и опубликуйте пост на стене, ссылающийся на него.
2. Загрузить в альбом Facebook. Проверьте API графа о том, как это сделать, это довольно просто.

edit: вы больше не можете получать изображения, размещенные в CDN facebook (и, возможно, в других CDN), поэтому, если вам нужно связать изображение из диалогового окна, вы должны загрузить его на сервер и получить от него постоянную ссылку

0 голосов
/ 24 марта 2011

Вы можете использовать ASIFormDataRequest и запустить скрипт для загрузки файла на сервер, используя что-то вроде этого:

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

// Upload a file on disk
[request setFile:@"/Users/ben/Desktop/ben.jpg" withFileName:@"myphoto.jpg" andContentType:@"image/jpeg"
forKey:@"photo"];

Затем ответ ASIFormDataRequest вернет URL загруженного изображения в ваше приложение.Вы можете использовать событие ответа ASIFormDataRequest для запуска публикации изображения Facebook.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...