AFOAuth1Client is an extension for AFNetworking that simplifies the process of authenticating against an OAuth 1.0a provider.
NSURL *baseURL = [NSURLURLWithString:@"https://twitter.com/oauth/"];
AFOAuth1Client *OAuth1Client = [[AFOAuth1Client alloc] initWithBaseURL:baseURL
key:@"..."secret:@"..."];Register your application to launch from a custom URL scheme, and use that with the path /success as your callback URL. The callback for the custom URL scheme should send a notification, which will complete the OAuth transaction.
NSURL *callbackURL = [NSURLURLWithString:@"x-com-YOUR-APP-SCHEME://success"];
[OAuth1Client authorizeUsingOAuthWithRequestTokenPath:@"/request_token"userAuthorizationPath:@"/authorize"callbackURL:callbackURL
accessTokenPath:@"/access_token"success:^(AFOAuth1Token *accessToken) {
NSLog(@"Success: %@", accessToken);
}
failure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];Responding to the custom URL scheme on iOS:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)URL
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
{
NSNotification *notification =
[NSNotificationnotificationWithName:kAFApplicationLaunchedWithURLNotificationobject:niluserInfo:@{kAFApplicationLaunchOptionsURLKey: URL}];
[[NSNotificationCenterdefaultCenter] postNotification:notification];
returnYES;
}Mattt Thompson
AFOAuth1Client is available under the MIT license. See the LICENSE file for more info.