有没有办法使用TWRequest或类似的方法向Twitter时间线添加照片?在这种情况下,我非常迷失。
我可以使用iOS5的TWRequest和先前iOS版本的MGTwitterEngine发布状态更新,但我无法将UIImage附加到更新中。
非常感谢您提供的任何帮助。
我可以使用iOS5的TWRequest和先前iOS版本的MGTwitterEngine发布状态更新,但我无法将UIImage附加到更新中。
非常感谢您提供的任何帮助。
我在这个网站上找到并使用了很多好的答案,感谢大家,想着是时候回馈一下了 :) 在Noah的回答基础上,这是最终对我有用的代码,可以使用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 的问题)。
TWTweetComposeViewController
视图控制器,无需处理Twitter OAuth和帐户即可发布照片到Twitter。有关更多详细信息,请参见http://developer.apple.com/library/ios/#documentation/Twitter/Reference/TWTweetSheetViewControllerClassRef/Reference/Reference.html。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];
使用TWRequest,您可以使用-addMultipartData:withName:type:
方法,并使用来自例如UIImageJPEGRepresentation()
方法的数据,通过Twitter API的statuses/update_with_media
方法发布推文。
如果您正在使用TWTweetComposeViewController,则更简单:您可以使用-addImage:
方法将一个或多个UIImage图像附加到其中。