How to twit a picture with some text in iPhone
I want to know that is there any way I can post picture in twitter with some text, som开发者_如何转开发e one has suggested to use "http://tinyurl.com/".I don't know where to start, in my previous application I twit successfully but that only contains text. A proper direction to proceed would be a great help.
There are a couple of ways. I would suggest you use ShareKit. It does most of the work for you.
To post image to twitter we have to first post the image to twit pick and then we have to send that url to twitter that is the process to send image to twitter this is the sample code to send image to 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];
}
精彩评论