ios - 使用 twitterkit 将图片发布到 Twitter

标签 ios objective-c twitter

我正在尝试使用带有自定义 UI 的 Twitter 新 TwitterKit 发布图片和推文。他们提供的唯一文档是如何用他们的观点来做。

所以我可以弄清楚如何在没有图像的情况下做到这一点

NSMutableDictionary *message = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[params objectForKey:@"description"],@"status",@"true",@"wrap_links", nil];

NSURLRequest* request = [twAPIClient URLRequestWithMethod:@"POST" URL:@"https://api.twitter.com/1.1/statuses/update.json" parameters:message error:nil];

[twAPIClient sendTwitterRequest:request completion:^(NSURLResponse* response, NSData* data, NSError* connectionError){



}];

但是他们的 URLRequestWithMethod 方法不是可变的。我将如何向其中添加图像。您曾经使用 SLRequest 和

[postRequest addMultipartData:UIImageJPEGRepresentation(image, 0.5) withName:@"media" type:@"image/jpeg" filename:@"image.png"];

最佳答案

我想通了。

首先,您需要将图片发布到 Twitter。

NSString *media = @"https://upload.twitter.com/1.1/media/upload.json";

NSData *imageData = UIImageJPEGRepresentation(image, 0.9);

NSString *imageString = [corgiData base64EncodedStringWithOptions:0];               

NSURLRequest *request = [client URLRequestWithMethod:@"POST" URL:media parameters:@{@"media":imageString} error:&requestError];

[[[Twitter sharedInstance] APIClient] sendTwitterRequest:request completion:^(NSURLResponse *urlResponse, NSData *data, NSError *connectionError) {


}];

然后在响应对象中使用 media_id_string 并将其添加到我问题中代码的参数中。

所以

NSMutableDictionary *message = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[params objectForKey:@"description"],@"status",@"true",@"wrap_links",mediaIDString, @"media_ids", nil];

NSURLRequest* request = [twAPIClient URLRequestWithMethod:@"POST" URL:@"https://api.twitter.com/1.1/statuses/update.json" parameters:message error:nil];

[twAPIClient sendTwitterRequest:request completion:^(NSURLResponse* response, NSData* data, NSError* connectionError){

 NSDictionary *responseDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&parsingError];

}];

注意第一个请求的响应中的 media_ids 对象

NSMutableDictionary *message = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[params objectForKey:@"description"],@"status",@"true",@"wrap_links",[responseDict objectForKey:@"media_id_string"], @"media_ids", nil];

所以你可以把它放在完成 block 中,它会发布图片和推文。

关于ios - 使用 twitterkit 将图片发布到 Twitter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28673349/

相关文章:

ios - 将 UIToolbar 锁定到 UITableViewController 的顶部

ios - 在 Collection View 中访问 indexPath

iphone - 如何应用正则表达式和/或清理电话线?

ios - 调用函数 'ABRecordCopyValue' 返回一个保留计数为 +1 的 corefoundation 对象

php json_array 回显推文文本

Python 打开多个 URL 连接 - urllib2

ios - 如何正确设置和使用字典?

ios - Swift:使用 snapkit 时如何获得正确的 UICollectionView 高度?

objective-c - 将两个 iOS 应用程序合二为一

twitter - Twitter 搜索 API 中的地理编码参数是否有最大半径?