2011-11-14 39 views
7

Có cách nào để thêm ảnh vào dòng thời gian Twitter bằng TWRequest hoặc bất kỳ thứ gì như vậy không ?? Tôi rất mất mát trong trường hợp này.iOS 5 Đính kèm ảnh vào Twitter bằng Twitter API

Tôi có thể đăng cập nhật trạng thái bằng TWRequest cho iOS5 và MGTwitterEngine cho phiên bản iOS trước, nhưng tôi không thể đính kèm UIImage vào bản cập nhật.

Cảm ơn trước vì đã được trợ giúp.

Trả lời

15

Tôi đã tìm thấy và sử dụng rất nhiều câu trả lời tuyệt vời trên trang này, Cảm ơn mọi người, nghĩ đã đến lúc trả lại :). và văn bản trên một tweet bằng TWRequest ...

  TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"https://upload.twitter.com/1/statuses/update_with_media.json"] parameters:nil requestMethod:TWRequestMethodPOST]; 

      UIImage * image = [UIImage imageNamed:@"myImage.png"]; 

      //add text 
      [postRequest addMultiPartData:[@"I just found the secret level!" dataUsingEncoding:NSUTF8StringEncoding] withName:@"status" type:@"multipart/form-data"]; 
      //add image 
      [postRequest addMultiPartData:UIImagePNGRepresentation(image) withName:@"media" type:@"multipart/form-data"]; 

      // Set the account used to post the tweet. 
      [postRequest setAccount:twitterAccount]; 

      // Perform the request created above and create a handler block to handle the response. 
      [postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) { 
       NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]]; 
       [self performSelectorOnMainThread:@selector(displayText:) withObject:output waitUntilDone:NO]; 
      }]; 

tôi thấy sử dụng TWRequest là giải pháp tốt nhất cho kịch bản của tôi vì tôi không muốn người dùng có thể chỉnh sửa bài viết trước khi tweet (mà là vấn đề với việc sử dụng TWTweetComposeViewController)

+0

Mã này có áp dụng trong chỉ ios5 không? hoặc tôi có thể sử dụng nó cho các phiên bản thấp hơn chỉ – iPhone

+0

iOS5, có thư viện twitter mở ra có thể giúp bạn nếu bạn cần một giải pháp staticfiction

+0

Bạn có thể làm điều tương tự trong iOS 4 với [DETweetComposeViewController] (https://github.com/ doubleencore/DETweetComposeViewController). –

1

Với TWRequest, bạn có thể sử dụng phương pháp -addMultipartData:withName:type: trên đó với dữ liệu từ, ví dụ: phương pháp UIImageJPEGRepresentation(), để đăng tweet qua phương pháp statuses/update_with_media của Twitter API.

Nếu bạn đang sử dụng TWTweetComposeViewController, nó thậm chí còn đơn giản hơn: bạn có thể đính kèm một hoặc nhiều hình ảnh UIImage vào phương thức -addImage:.

4

bạn có thể sử dụng bộ điều khiển chế độ xem twitter TWTweetComposeViewController để đăng ảnh lên twitter mà không cần xử lý tài khoản twitter oauth và tài khoản. xem http://developer.apple.com/library/ios/#documentation/Twitter/Reference/TWTweetSheetViewControllerClassRef/Reference/Reference.html để biết thêm chi tiết.

Vấn đề chính là đây là tính năng mới của iOS 5, do đó người dùng không nâng cấp sẽ không thể sử dụng tính năng này.

TWTweetComposeViewController* tweetView = [[TWTweetComposeViewController alloc] init]; 
[tweetView addImage:yourImage]; 

TWTweetComposeViewControllerCompletionHandler 
     completionHandler = 
    ^(TWTweetComposeViewControllerResult result) { 
     switch (result) 
     { 
      case TWTweetComposeViewControllerResultCancelled: 
       NSLog(@"Twitter Result: canceled"); 
       break; 
      case TWTweetComposeViewControllerResultDone: 
       NSLog(@"Twitter Result: sent"); 
       break; 
      default: 
       NSLog(@"Twitter Result: default"); 
       break; 
     } 
     [self dismissModalViewControllerAnimated:YES]; 
    }; 
[tweetView setCompletionHandler:completionHandler]; 
Các vấn đề liên quan