2011-11-14 4 views
7

TwitterのタイムラインにTWRequestなどを使用して写真を追加する方法はありますか?私はこの場合非常に失われています。iOS 5 Twitter APIを使ってTwitterに写真を添付する

iOS5のTWRequestと以前のiOSバージョンのMGTwitterEngineを使用して状態の更新を送信できますが、UIImageを更新に添付することはできません。

ご協力いただきありがとうございます。

答えて

15

、おかげでみんな、それが恩返しする時間だと思った:)ノアの答えにエラボレーション、これは画像を取得するために私のために働いた最終的なコードですそして私は、私が問題でした(ユーザーがつぶやい前に投稿を編集できるようにしたくなかったとして、私のシナリオのための最善の解決策であると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]; 
      }]; 

TWRequestを使用して、ツイートのテキスト... TWTweetComposeViewControllerを使用して)

+0

このコードはios5にのみ適用できますか?または私は下のバージョンのためにそれを使うことができます – iPhone

+0

iOS5のみ、 staticfiction

+0

[DETweetComposeViewController](https://github.com/)でiOS 4でも同じことができますdoubleencore/DETweetComposeViewController)。 –

1

TWRequestを使用すると、UIImageJPEGRepresentation()メソッドのデータを使用して-addMultipartData:withName:type:メソッドを使用して、Twitter APIのstatuses/update_with_mediaメソッドを使用してツイートを投稿できます。

TWTweetComposeViewControllerを使用している場合は、さらに簡単です。-addImage:メソッドを使用して、1つ以上のUIImageイメージをイメージに添付できます。

4

twitter oauthとアカウントを処理せずに、twitterに投稿するには、表示コントローラーTWTweetComposeViewControllerを使用してください。詳細はhttp://developer.apple.com/library/ios/#documentation/Twitter/Reference/TWTweetSheetViewControllerClassRef/Reference/Reference.htmlを参照してください。

主な問題は、iOS 5の新機能です。アップグレードしなかったユーザーは、これを使用できなくなります。私はこのサイト上で非常に多くの偉大な答えを発見し、使用している

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]; 
関連する問題