Nic*_*ood 6 twitter objective-c ios
我正在尝试使用带有自定义UI的Twitters新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){
}];
Run Code Online (Sandbox Code Playgroud)
但是他们的URLRequestWithMethod方法并不可变.我将如何添加图像.你以前用SLRequest做的
[postRequest addMultipartData:UIImageJPEGRepresentation(image, 0.5) withName:@"media" type:@"image/jpeg" filename:@"image.png"];
Run Code Online (Sandbox Code Playgroud)
我已经弄清楚了.
首先,您需要将图像发布到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) {
}];
Run Code Online (Sandbox Code Playgroud)
然后在响应对象中使用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];
}];
Run Code Online (Sandbox Code Playgroud)
请注意来自第一个请求的响应的media_ids对象
NSMutableDictionary *message = [[NSMutableDictionary alloc] initWithObjectsAndKeys:[params objectForKey:@"description"],@"status",@"true",@"wrap_links",[responseDict objectForKey:@"media_id_string"], @"media_ids", nil];
Run Code Online (Sandbox Code Playgroud)
所以你可以把它放在完成块内,它会发布图像和推文.
| 归档时间: |
|
| 查看次数: |
3517 次 |
| 最近记录: |