Я никогда не публиковал напрямую в 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.