Опубликовать поток с FacebookGraph API, используя ASIHTTPRequest? - PullRequest
1 голос
/ 06 сентября 2010

Может кто-нибудь объяснить мне, как создать объект ASIHTTPRequest, который может публиковать поток на Facebook с помощью Graph API?

Вызов API: https://graph.facebook.com/me/feed?message=X&access_token=Y Тип метода POST

1 Ответ

3 голосов
/ 06 сентября 2010

Я никогда не публиковал напрямую в API Facebook Graph (хотя я использовал их API, который вызывает диалоги UIWebView и обрабатывает фактический бизнес публикации для вас). Я использовал чертовски из ASIHTTPRequest, хотя.

NSString *reqStr = [NSString stringWithFormat:@"https://graph.facebook.com/me/feed?message=%@&access_token=%@", messageString, accessTokenString];
ASIHTTPRequest *req = [ASIHTTPRequest requestWithUrl:[NSURL urlWithString:reqStr]];
req.delegate = self;
req.userInfo = [NSDictionary dictionaryWithObject:@"graphRequest" forKey:@"type"];
req.requestMethod = @"POST";
[req startAsynchronous];

Пара вещей. Я демонстрирую использование поля .userInfo, потому что оно чертовски полезно. Это свойство принимает любой NSDictionary, содержащий любые объекты, которые вы хотите включить, и вы можете получить к ним позже в методе -request: didFinish. Вы можете передать ему указатель на образ UIImageView, который вы хотите загрузить с загружаемым UIImage, например. Чаще всего, по моему опыту, если у вас внутри одного и того же viewController происходит более одного запроса, вы просто устанавливаете другой объект для вашего ключа @"type" в этом словаре, и у вас есть простой способ отделить их позже.

Во-вторых, вы вполне можете спросить: "Должен ли я сделать что-то особенное, потому что это https?" По моему опыту, вы совершенно не уверены, ASIHTTPRequest достаточно умен, чтобы справиться со всем этим за кулисами.

Если вам нужно создать поля публикации, а не просто отправлять данные в строке запроса, вы используете объект ASIFormPostData, а не ASIHTTPRequest, но он ведет себя более или менее одинаково.

РЕДАКТИРОВАТЬ, НЕСКОЛЬКО ЛЕТ СПУСТЯ: ASIHttpRequest теперь устарел его разработчик, который рекомендует перейти на другой пакет, который находится в стадии разработки. Кажется, людям нравится AFNetworking.

...