【问题标题】:Post a picture to Twitter with iPhone使用 iPhone 将图片发布到 Twitter
【发布时间】:2011-07-26 17:41:16
【问题描述】:

我对在 ios4 上使用 Twitter API 完全陌生。 我正在寻找将 uiimage 发布到用户页面的最简单方法。 怎么做?

【问题讨论】:

    标签: iphone twitter image


    【解决方案1】:

    使用http://dev.twitpic.com/

    在此处以 http 请求发布您的图片。如果您需要帮助,请发表评论

    这里是代码 -

    -(void)postToTwitter
    {
    
        // create the URL
        NSURL *postURL = [NSURL URLWithString:@"http://api.twitpic.com/1/uploadAndPost.xml"];
    
        // create the connection
        NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:postURL
                                                                   cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                               timeoutInterval:30.0];
    
        // change type to POST (default is GET)
        [postRequest setHTTPMethod:@"POST"];
    
    
    
        // create data
        NSMutableData *postBody = [NSMutableData data];
    
        NSString *username = emailTextField.text;
        NSString *password = passTextField.text;
    
        NSString *consumer_token=@"consumer token";
        NSString *consumer_secret=@"consumer secret ";
        NSString *oauth_token=@"oauth token";
        NSString *oauth_secret=@"oauth secret";
        NSString *api_key=@"api key";
    
        NSString *message = commentTxt.text;
    
    
        // just some random text that will never occur in the body
        NSString *stringBoundary = @"0xKhTmLbOuNdArY---This_Is_ThE_BoUnDaRyy---pqo";
        // header value
        NSString *headerBoundary = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",stringBoundary];
        // set header
        [postRequest addValue:headerBoundary forHTTPHeaderField:@"Content-Type"];
    
        // username part
         [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
         [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"username\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
         [postBody appendData:[username dataUsingEncoding:NSUTF8StringEncoding]];
         [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
         // password part
         [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
         [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"password\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
         [postBody appendData:[password dataUsingEncoding:NSUTF8StringEncoding]];
         [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
    
        // api_key
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"key\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[api_key dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        // consumer_token
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"consumer_token\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[consumer_token dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        // consumer_secret
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"consumer_secret\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[consumer_secret dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        //oauth_token
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"oauth_token\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[oauth_token dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        //oauth_secret
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"oauth_secret\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[oauth_secret dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        // message part
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"message\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[message dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
    
        // media part
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"Content-Disposition: form-data; name=\"media\"; filename=\"fish.jpg\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"Content-Type: image/jpeg\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
        [postBody appendData:[@"Content-Transfer-Encoding: binary\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        img=[cFun correctImageOrientation:img];
        NSData *imageData = UIImageJPEGRepresentation(img, 90);
    
        // add it to body
        [postBody appendData:imageData];
        [postBody appendData:[@"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
    
        // final boundary
        [postBody appendData:[[NSString stringWithFormat:@"--%@\r\n", stringBoundary] dataUsingEncoding:NSUTF8StringEncoding]];
    
    
        // add body to post
        [postRequest setHTTPBody:postBody];
    
        // pointers to some necessary objects
        //NSURLResponse* response;
        //NSError* error;
        [activity_bg setHidden:NO];
        [activityIndicator startAnimating];
    
        NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:postRequest delegate:self];
    
        if( theConnection )
        {
            webData = [[NSMutableData data] retain];
        }
        else
        {
            NSLog(@"theConnection is NULL");
        }
    
    }
    

    【讨论】:

    • 是的,完美;这里的 oauth_token 是 engine.key 和 oauth_secret = engine.secret 其中引擎是 SA_OAuthTwitterEngine 类
    猜你喜欢
    • 2012-10-26
    • 2013-11-12
    • 2013-12-26
    • 1970-01-01
    • 2023-03-06
    • 2015-04-24
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多