我想知道有什么方法可以在推特上用一些文字发布图片,有人建议使用“http://tinyurl.com/”。我不知道从哪里开始,在我的以前的应用程序我成功但是只包含文本。 正确的方向将是一个很大的帮助。
答案 0 :(得分:1)
有两种方法。我建议你使用ShareKit。它完成了大部分工作。
答案 1 :(得分:0)
要将图片发布到Twitter,我们必须首先将图片发布到twit pick然后我们必须将该url发送到twitter,这是将图像发送到twitter的过程这是将图像发送到twitter的示例代码... .......
NSString *postUrl = @"https://api.twitter.com/1/statuses/update.json";
ASIFormDataRequest *request = [[ASIFormDataRequest alloc]
initWithURL:[NSURL URLWithString:postUrl]];
NSMutableDictionary *postInfo = [NSMutableDictionary
dictionaryWithObject:statusText.text
forKey:@"status"];
NSLog(@"%@",postInfo);
NSString *str1= statusText.text;
NSLog(@"Status posted. HTTP result code: %d", request.responseStatusCode);
[request release];
[statusText resignFirstResponder];
ASIFormDataRequest *req = [[ASIFormDataRequest alloc] initWithURL:[NSURL URLWithString:@"http://api.twitpic.com/2/upload.json"]];
[req addRequestHeader:@"X-Auth-Service-Provider" value:@"https://api.twitter.com/1/account/verify_credentials.json"];
[req addRequestHeader:@"X-Verify-Credentials-Authorization"
value:[oAuth oAuthHeaderForMethod:@"GET"
andUrl:@"https://api.twitter.com/1/account/verify_credentials.json"
andParams:nil]];
[req setData:UIImageJPEGRepresentation(imageView.image, 0.8) forKey:@"media"];
// Define this somewhere or replace with your own key inline right here.
[req setPostValue:@"74734e805f2ad85afae441ca12c16087" forKey:@"key"];
[req startSynchronous];
NSLog(@"Got HTTP status code from TwitPic: %d", [req responseStatusCode]);
NSLog(@"Response string: %@", [req responseString]);
NSDictionary *twitpicResponse = [[req responseString] JSONValue];
NSLog(@"%@",[[req responseString] JSONValue]);
textView.text = [NSString stringWithFormat:@"Posted image URL: %@", [twitpicResponse valueForKey:@"url"]];
NSString *str=[NSString stringWithFormat:@" %@",[twitpicResponse valueForKey:@"url"]];
NSLog(@"%@",str);
if([str isEqualToString:@" (null)"])
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:@"Could not authenticate you(header rejected by twitter)" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertView show];
}
else
{
NSString *postUrl = @"https://api.twitter.com/1/statuses/update.json";
ASIFormDataRequest *request = [[ASIFormDataRequest alloc]
initWithURL:[NSURL URLWithString:postUrl]];
NSString *txtmessage=[str1 stringByAppendingString:str];
/*NSMutableDictionary *postInfo = [NSMutableDictionary
dictionaryWithObject:[twitpicResponse valueForKey:@"url"]
forKey:@"status"];*/
NSMutableDictionary *postInfo = [NSMutableDictionary
dictionaryWithObject:txtmessage
forKey:@"status"];
for (NSString *key in [postInfo allKeys]) {
[request setPostValue:[postInfo objectForKey:key] forKey:key];
}
[request addRequestHeader:@"Authorization"
value:[oAuth oAuthHeaderForMethod:@"POST"
andUrl:postUrl
andParams:postInfo]];
[request startSynchronous];
if(request.responseStatusCode!=200)
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:@"Already posted" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertView show];
}
else {
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Message" message:@"sucess" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertView show];
}
NSLog(@"Status posted. HTTP result code: %d", request.responseStatusCode);
statusText.text = @"";
[request release];
[statusText resignFirstResponder];
}