有没有办法使用TWRequest或类似的东西将照片添加到Twitter时间线?在这种情况下,我非常迷失。
我可以使用TWRequest for iOS5和MGTwitterEngine为以前的iOS版本发布状态更新,但我无法将UIImage附加到更新。
提前感谢您提供的任何帮助。
答案 0 :(得分: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的问题)
答案 1 :(得分:4)
您可以使用Twitter撰写视图控制器TWTweetComposeViewController
将照片发布到Twitter,而无需处理Twitter 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];
答案 2 :(得分:1)
使用TWRequest,您可以使用-addMultipartData:withName:type:
方法,使用来自UIImageJPEGRepresentation()
方法的数据,通过Twitter API的statuses/update_with_media
方法发布推文。
如果您正在使用TWTweetComposeViewController,它甚至更简单:您可以使用-addImage:
方法将一个或多个UIImage图像附加到其中。