Загрузка изображения из профиля в Твиттере - PullRequest
1 голос
/ 17 декабря 2009

Я хочу загрузить изображение в свой профиль в твиттере, используя target-c. В твиттер-API я увидел, что мне нужно отправить сообщение HTML на http://twitter.com/account/update_profile_image.format и отправить изображение в качестве параметра. Я сделал с аутентификацией. Я застрял с загрузкой. Может быть, кто-нибудь может помочь мне с отправкой изображения в качестве параметра?

Ответы [ 4 ]

2 голосов
/ 17 декабря 2009

Вы должны использовать NSURLRequests и NSURLConnection для выполнения запросов API. Если это так, все, что вам нужно сделать, это создать NSMutableURLRequest, установить его URL в URL API загрузки изображений из Twitter, установить метод POST.

Затем вам нужно будет создать объект NSData для представления вашего изображения, что вы можете сделать, используя

NSData *myImageData = [[NSData alloc] initWithData:[myImage CGImage]];

Я не знаю, как называется параметр для API загрузки в Твиттер, поэтому ради аргументов давайте назовем его «изображение». Следующее, что вам нужно сделать, это установить данные изображения в качестве тела запроса для параметра «image», например:

NSString *bodyString = [NSString stringWithFormat:@"image=%@", [[[NSString alloc] initWithData:myImageData encoding:NSStringUTF8Encoding] autorelease]];
[myRequest setBody:bodyString];

Тогда вы можете просто запустить NSURLConnection с запросом, и он должен загрузить.

0 голосов
/ 30 ноября 2011

Что-то вроде этого

// См. http://groups.google.com/group/twitter-development-talk/browse_thread/thread/df7102654c3077be/163abfbdcd24b8bf

NSString *postUrl = @"http://api.twitter.com/1/account/update_profile_image.json";
ASIFormDataRequest *req = [[ASIFormDataRequest alloc] initWithURL:[NSURL 
URLWithString:postUrl]];
[req addRequestHeader:@"Authorization" value:[oAuth oAuthHeaderForMethod:@"POST" 
andUrl:postUrl andParams:nil]];

[req setData:UIImageJPEGRepresentation(imageView.image, 0.8)
withFileName:@"myProfileImage.jpg"
andContentType:@"image/jpeg" forKey:@"image"];    

[req startSynchronous];
NSLog(@"Got HTTP status code from Twitter after posting profile image: %d", [req   
responseStatusCode]);
NSLog(@"Response string: %@", [req responseString]);
[req release];
0 голосов
/ 17 декабря 2009

Я рекомендую использовать ASIHTTPRequest

Что такое ASIHTTPRequest?

ASIHTTPRequest - это простая в использовании оболочка для API-интерфейса CFNetwork, упрощающая некоторые из утомительных аспектов взаимодействия с веб-серверами. Он написан на Objective-C и работает в приложениях Mac OS X и iPhone.

Подходит для выполнения базовых HTTP-запросов и взаимодействия со службами на основе REST (GET / POST / PUT / DELETE). Включенный подкласс ASIFormDataRequest позволяет легко отправлять данные и файлы POST, используя multipart / form-data.

См. сообщение в блоге для примера

0 голосов
/ 17 декабря 2009

Если вам удалось начать, то этот пост на CocoaDev должен помочь вам настроить загрузку. Сверху тоже есть образец ссылки.

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