如何在 IOS 的 Twitter 中上传动画 GIF?
How to Upload an Animated GIF in Twitter for IOS?
我有一张 GIF 图片,想在 Twitter 上分享它,但不幸的是它不起作用。
当我在 dev.twitter.com 网站上使用推特 api post编辑图像时,它工作正常并且动画。
但是我想 post 使用 Twitter IOS App/API 的图像。有人知道怎么做吗?
提前致谢。
- (void)postImage:(UIImage *)image withStatus:(NSString *)status url:(NSURL*)urlData {
// UIImage *img = [UIImage animatedImageNamed:@"test.gif" duration:3.0];
NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update_with_media.json"];
NSMutableDictionary *paramater = [[NSMutableDictionary alloc] init];
//set the parameter here. to see others acceptable parameters find it at twitter API here : http://bit.ly/Occe6R
[paramater setObject:status forKey:@"status"];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
if (granted == YES) {
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
if ([accountsArray count] > 0) {
ACAccount *twitterAccount = [accountsArray lastObject];
SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:url parameters:paramater];
NSData *imageData = [NSData dataWithContentsOfURL:urlData]; // GIF89a file
[postRequest addMultipartData:imageData withName:@"media[]" type:@"image/gif" filename:@"animated.gif"];
[postRequest setAccount:twitterAccount]; // or postRequest.account = twitterAccount;
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]];
NSLog(@"output = %@",output);
dispatch_async(dispatch_get_main_queue(), ^{
});
}];
}
}
}];
}
像这样调用上面的方法
[self postImage:nil withStatus:@"Your Text" url:assetURL]
实际上 update_with_media 已弃用。
从现在开始,您只需使用 upload.json + update.json。这是一个 2 层过程。
我写了一篇教程,介绍如何使用完整代码来完成此操作。看这里:
http://xcodenoobies.blogspot.my/2016/01/how-to-using-slrequest-to-upload-image.html
我有一张 GIF 图片,想在 Twitter 上分享它,但不幸的是它不起作用。
当我在 dev.twitter.com 网站上使用推特 api post编辑图像时,它工作正常并且动画。
但是我想 post 使用 Twitter IOS App/API 的图像。有人知道怎么做吗?
提前致谢。
- (void)postImage:(UIImage *)image withStatus:(NSString *)status url:(NSURL*)urlData {
// UIImage *img = [UIImage animatedImageNamed:@"test.gif" duration:3.0];
NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/statuses/update_with_media.json"];
NSMutableDictionary *paramater = [[NSMutableDictionary alloc] init];
//set the parameter here. to see others acceptable parameters find it at twitter API here : http://bit.ly/Occe6R
[paramater setObject:status forKey:@"status"];
ACAccountStore *accountStore = [[ACAccountStore alloc] init];
ACAccountType *accountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter];
[accountStore requestAccessToAccountsWithType:accountType options:nil completion:^(BOOL granted, NSError *error) {
if (granted == YES) {
NSArray *accountsArray = [accountStore accountsWithAccountType:accountType];
if ([accountsArray count] > 0) {
ACAccount *twitterAccount = [accountsArray lastObject];
SLRequest *postRequest = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodPOST URL:url parameters:paramater];
NSData *imageData = [NSData dataWithContentsOfURL:urlData]; // GIF89a file
[postRequest addMultipartData:imageData withName:@"media[]" type:@"image/gif" filename:@"animated.gif"];
[postRequest setAccount:twitterAccount]; // or postRequest.account = twitterAccount;
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
NSString *output = [NSString stringWithFormat:@"HTTP response status: %i", [urlResponse statusCode]];
NSLog(@"output = %@",output);
dispatch_async(dispatch_get_main_queue(), ^{
});
}];
}
}
}];
}
像这样调用上面的方法
[self postImage:nil withStatus:@"Your Text" url:assetURL]
实际上 update_with_media 已弃用。
从现在开始,您只需使用 upload.json + update.json。这是一个 2 层过程。
我写了一篇教程,介绍如何使用完整代码来完成此操作。看这里: http://xcodenoobies.blogspot.my/2016/01/how-to-using-slrequest-to-upload-image.html