GSTwitPicEngine provides easy to implement wrapper around the TwitPic.com's OAuth (v1) and OAuth Echo (v2) API for iPhone application projects.
- ASIHTTPRequest - http://allseeing-i.com/ASIHTTPRequest/
- OAuthConsumer - http://github.com/jdg/oauthconsumer
- OARequestHeader - http://github.com/Gurpartap/OARequestHeader
- One of these JSON parsers:
- yajl & yajl-objc (enabled by default) - http://github.com/gabriel/yajl-objc
- TouchJSON
- SBJSON
- MGTwitterEngine or anything of your choice that supplies the OAToken instance (from OAuthConsumer).
-
Set kTwitterOAuthConsumerKey, kTwitterOAuthConsumerSecret and kTwitPicAPIKey constants to their respective values before GSTwitPicEngine.h is imported.
-
See GSTwitPicEngine.h to configure TwitPic API Format (XML or JSON) and to set which JSON Parser to use.
-
Add header file:
#import "GSTwitPicEngine.h"
-
Setup retained (@synthesize) instance var/property in the header:
GSTwitPicEngine *twitpicEngine;
-
Implement GSTwitPicEngineDelegate protocol for the class.
-
Initialize the engine with class or as needed:
self.twitpicEngine = (GSTwitPicEngine *)[GSTwitPicEngine twitpicEngineWithDelegate:self];
-
Find the authorization token and supply to twitpicEngine with:
[twitpicEngine setAccessToken:token];
-
Then to upload image and attach a text message along with it (does not post to twitter):
[twitpicEngine uploadPicture:[UIImage imageNamed:@"mypic.png"] withMessage:@"Hello world!"]; // This message is supplied back in success delegate call in request's userInfo.
-
To upload image only:
[twitpicEngine uploadPicture:uploadImageView.image];
-
Upon end of request, one of the delegate methods is called with appropriate data and information.
- GSTwitPicEngineDelegate protocol specifies two delegate methods:
- (void)twitpicDidFinishUpload:(NSDictionary *)response { NSLog(@"TwitPic finished uploading: %@", response); // [response objectForKey:@"parsedResponse"] gives an NSDictionary of the response one of the parsing libraries was available. // Otherwise, use [[response objectForKey:@"request"] objectForKey:@"responseString"] to parse yourself. if ([[[response objectForKey:@"request"] userInfo] objectForKey:@"message"] > 0 && [[response objectForKey:@"parsedResponse"] count] > 0) { // Uncomment to update status upon successful upload, using MGTwitterEngine's instance. // [twitterEngine sendUpdate:[NSString stringWithFormat:@"%@ %@", [[[response objectForKey:@"request"] userInfo] objectForKey:@"message"], [[response objectForKey:@"parsedResponse"] objectForKey:@"url"]]]; } }
- (void)twitpicDidFailUpload:(NSDictionary *)error { NSLog(@"TwitPic failed to upload: %@", error); if ([[error objectForKey:@"request"] responseStatusCode] == 401) { // UIAlertViewQuick(@"Authentication failed", [error objectForKey:@"errorDescription"], @"OK"); } }
Find me on Twitter: http://twitter.com/Gurpartap Or use the form at http://gurpartap.com/contact to talk privately (ooooh!!).
Copyright (c) 2010 Gurpartap Singh, http://gurpartap.com/
This code is licensed under the MIT License
You are free:
- to Share — to copy, distribute and transmit the work
- to Remix — to adapt the work
Under the following conditions:
- The copyright notice and license shall be included in all copies or substantial portions of the software.
- Any of the above conditions can be waived if you get permission from the copyright holder.
See bundled MIT-LICENSE.txt file for detailed license terms.