iOS 5 Прикрепите фотографию к Twitter с помощью Twitter API - PullRequest
7 голосов
/ 15 ноября 2011

Есть ли способ добавить фотографию на временную шкалу Twitter с помощью TWRequest или что-то в этом роде?В этом случае я очень сильно растерялся.

Я могу опубликовать обновление статуса, используя TWRequest для iOS5 и MGTwitterEngine для предыдущей версии iOS, но я не могу прикрепить UIImage к обновлению.

Заранее благодарим за предоставленную помощь.

Ответы [ 3 ]

15 голосов
/ 23 ноября 2011

Я нашел и использовал так много отличных ответов на этом сайте, Спасибо всем, думал, что пришло время вернуть :) Прорабатывая ответ Ноя, это последний код, который сработал для меня, чтобы получить изображение и текст на твит с использованием 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)

4 голосов
/ 15 ноября 2011

вы можете использовать контроллер твит-представления TWTweetComposeViewController, чтобы публиковать фотографии в твиттере, не обращаясь к oauth и учетным записям.см. 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];
1 голос
/ 15 ноября 2011

С TWRequest вы можете использовать метод -addMultipartData:withName:type: для этого с данными, например, из метода UIImageJPEGRepresentation(), чтобы опубликовать твит с помощью метода statuses/update_with_media в API Twitter.*

Если вы используете TWTweetComposeViewController, это еще проще: вы можете прикрепить к нему одно или несколько изображений UIImage методом -addImage:.

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