开发者

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];  
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜