Sunday, October 3, 2010

how we can share images with Twitter/facebook

twitpic images expire after about 17 minutes--which means 17 minutes after scraping, users won't have access to the images.
So I use :


http://groups.google.com/group/plixi/web/sample-iphone-code-upload
Plixi API Document :

Sample iPhone Code (Upload)  
-(NSData*) UploadPlixi : (NSData*) imageData
{
      NSString *apikey = [self GetApiKey:self.mediaService];
      float piclongitude = 122;
      float piclatitude = 40;
      BOOL emptyMsg = (self.message==nil || [self.message length] == 0);
      NSString *uploadAndPost =  emptyMsg ? @"http://api.plixi.com/api/tpapi.svc/upload" : @"http://api.plixi.com/api/tpapi.svc/uploadandpost";
      NSString *twitter_password = [self.password copy];
      NSString *twitter_username = [self.userName copy];
      NSString *twitter_msg = @"Plixi API is awesome!";
     
      /*build XML like this, the Location & tags elements are optional everything else is required
       
      http://api.plixi.com" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">

            apikey
            
                  lat
                  long
            
            give it the tweet message
            image/png
            password
            cat,cool,yes
            username
      
      */
     
      NSString *xml = [NSString stringWithFormat:@"http://api.plixi.com\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">%@%@%@%@%@%@%@",
            [NSString stringWithFormat:@"%@",apikey], //your developer apikey this is required
            [NSString stringWithFormat:@"%.6f%.6f",piclatitude,piclongitude],
            [NSString stringWithFormat:@"%@",twitter_msg], //message you want to tweet
            [NSString stringWithFormat:@"image/png"], //i'm using png in my code, change this to whatever you're using
            [NSString stringWithFormat:@"%@",twitter_password], //twitter password
            [NSString stringWithFormat:@"%@",@"tag1,tag2,tag3"], //comma seperated list of tags
            [NSString stringWithFormat:@"%@",twitter_username]]; //twitter user name
     

      //get UTF8Encoded XML String
      NSMutableData *uploadPostData = [NSMutableData data];
      [uploadPostData appendData:[xml dataUsingEncoding:NSUTF8StringEncoding]]; //write the XML as UTF8 encoded bytes first
      [uploadPostData appendData:[NSData dataWithData:imageData]]; //write the bytes that represent the image next
     

      //Create a post request
      NSMutableURLRequest *request = [[[NSMutableURLRequest allocinitautorelease];
      [request setURL:[NSURL URLWithString:uploadAndPost]];
      [request setHTTPMethod:@"POST"];   
      [request addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField@"Content-Type"];    
      [request addValue:[NSString stringWithFormat:@"%d",[imageData length]] forHTTPHeaderField@"TPAPIImageSize"];   //this is a custom header, tell the server what size the image is in bytes
      [request addValue:[NSString stringWithFormat:@"%d",[uploadPostData length]] forHTTPHeaderField@"Content-Length"];   //this is the size of the entire message size in bytes, not sure if this is autoset

      [request setHTTPBody:uploadPostData];    
      //now send it away - slow code this is synchronous!
      return [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
}
http://groups.google.com/group/plixi/web

With Regrads,
Dinesh Sharma

No comments:

Post a Comment