iOS 5 Attach photo to Twitter with Twitter API

后端 未结 3 670
谎友^
谎友^ 2020-12-09 22:25

Is there any way to add a photo to Twitter timeline using TWRequest or anything like so?? I\'m very very lost in this case.

I can post a status update using TWReques

相关标签:
3条回答
  • 2020-12-09 22:43

    I have found and used so many great answers on this site, Thanks everyone, thought it's about time to give back :) Elaborating on Noah's answer, this is the final code that worked for me to get an image and text on a tweet using 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];
                }];
    

    I found using TWRequest to be best solution for my scenario as I didn't want the user to be able to edit the post before tweeting (which was the issue with using TWTweetComposeViewController)

    0 讨论(0)
  • 2020-12-09 22:51

    With TWRequest, you can use the -addMultipartData:withName:type: method on that with the data from, e.g., the UIImageJPEGRepresentation() method, to post a tweet via the Twitter API’s statuses/update_with_media method.

    If you’re using TWTweetComposeViewController, it’s even simpler: you can attach one or more UIImage images to it with the -addImage: method.

    0 讨论(0)
  • 2020-12-09 22:53

    you can use the twitter compose view controller TWTweetComposeViewController to post photos to twitter without dealing with twitter oauth and accounts. see http://developer.apple.com/library/ios/#documentation/Twitter/Reference/TWTweetSheetViewControllerClassRef/Reference/Reference.html for more details.

    The main issue is it's a new feature of iOS 5, so users that didn't upgrade won't be able to use it.

    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];
    
    0 讨论(0)
提交回复
热议问题