2011-04-07 68 views
1

我要上傳從iPhone應用程序的圖像Twitter和MySpace的嘰嘰喳喳/ MySpace的。我試過但沒有找到任何解決方案。任何人都可以幫忙。特別是如果任何人都可以指出示例代碼。上傳/提交圖片來自iphone

在此先感謝

+2

你甚至嘗試使用搜索?在SO或Google上進行搜索可能會發現至少20個好的代碼示例。 – Jordan 2011-04-07 17:22:29

回答

5

可以在HTTP請求中使用這裏http://dev.twitpic.com/

安置自己的形象。

這裏是代碼 -

-(void)postToTwitter 
{ 

// create the URL 
NSURL *postURL = [NSURL URLWithString:@"http://api.twitpic.com/1/uploadAndPost.xml"]; 

// create the connection 
NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:postURL 
                  cachePolicy:NSURLRequestUseProtocolCachePolicy 
                 timeoutInterval:30.0]; 

// change type to POST (default is GET) 
[postRequest setHTTPMethod:@"POST"]; 



// create data 
NSMutableData *postBody = [NSMutableData data]; 

NSString *username = emailTextField.text; 
NSString *password = passTextField.text; 

NSString *[email protected]"consumer token"; 
NSString *[email protected]"consumer secret "; 
NSString *[email protected]"oauth token"; 
NSString *[email protected]"oauth secret"; 
NSString *[email protected]"api key"; 

NSString *message = commentTxt.text; 


// just some random text that will never occur in the body 
NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo"; 
// header value 
NSString *headerBoundary = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary]; 
// set header 
[postRequest addValue:headerBoundary forHTTPHeaderField:@"Content-Type"]; 

// username part 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"username\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[username dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

// password part 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"password\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[password dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 


// api_key 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"key\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[api_key dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

// consumer_token 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"consumer_token\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[consumer_token dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

// consumer_secret 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"consumer_secret\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[consumer_secret dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

//oauth_token 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"oauth_token\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[oauth_token dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

//oauth_secret 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"oauth_secret\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[oauth_secret dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

// message part 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"message\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[message dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 


// media part 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"Content-Disposition: form-data; name=\"media\"; filename=\"fish.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"Content-Type: image/jpeg\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 
[postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

img=[cFun correctImageOrientation:img]; 
NSData *imageData = UIImageJPEGRepresentation(img, 90); 

// add it to body 
[postBody appendData:imageData]; 
[postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]]; 

// final boundary 
[postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]]; 


// add body to post 
[postRequest setHTTPBody:postBody]; 

// pointers to some necessary objects 
//NSURLResponse* response; 
//NSError* error; 
[activity_bg setHidden:NO]; 
[activityIndicator startAnimating]; 

NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:postRequest delegate:self]; 

if(theConnection) 
{ 
    webData = [[NSMutableData data] retain]; 
} 
else 
{ 
    NSLog(@"theConnection is NULL"); 
} 

} 

希望這有助於你:)

+0

@Mas:這個回答有幫助嗎? – 2011-04-08 05:10:20

+0

謝謝,我會檢查它,我已經有消費者的鑰匙和祕密,現在我申請oauth令牌和祕密。 MySpace中的任何幫助? – Mas 2011-04-08 05:56:07

+0

您隨時歡迎。我也會很快發佈MySpace。很高興我幫助你。 :) – 2011-04-08 06:33:00

2

您無法直接將圖像上傳到Twitter。你需要在twitpic上使用一個圖像服務,這將有它自己的API - http://twitpic.com/api.do(有很多選擇,例如yfrog)。

你可以的UIImagePickerController獲得一個圖像,然後只是寫一些代碼張貼到您所選擇的圖像服務。