Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- + (void)getRequestTokenWithCompletion:(void (^)(NSString *requestToken,
- NSError *error))completionBlock {
- NSString *consumerKey = [[self class] consumerKey];
- NSString *consumerSecret = [[self class] consumerSecret];
- NSDictionary *parameters = @{@"x_auth_mode" : @"reverse_auth"};
- NSMutableString *paramsAsString = [[NSMutableString alloc] init];
- [parameters enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
- [paramsAsString appendFormat:@"%@=%@&", key, obj];
- }];
- NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/oauth/request_token"];
- NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
- request.HTTPMethod = @"POST";
- request.HTTPBody = [paramsAsString dataUsingEncoding:NSUTF8StringEncoding];
- NSString *authorizationHeader = OAuthorizationHeader(request.URL,
- request.HTTPMethod,
- request.HTTPBody,
- consumerKey,
- consumerSecret, nil, nil);
- [request setValue:authorizationHeader forHTTPHeaderField:@"Authorization"];
- [NSURLConnection sendAsynchronousRequest:request
- queue:[NSOperationQueue mainQueue]
- completionHandler:^(NSURLResponse *response,
- NSData *data,
- NSError *connectionError) {
- NSString *requestToken =
- [[NSString alloc] initWithData:data
- encoding:NSUTF8StringEncoding];
- if (completionBlock) {
- completionBlock(requestToken, connectionError);
- }
- }];
- }
- + (void)getAccessTokenForAccount:(ACAccount *)twitterAccount
- withRequestToken:(NSString *)requestToken
- completion:(void (^)(NSString *accessToken,
- NSError *error))completionBlock {
- NSDictionary *parameters = @{
- @"x_reverse_auth_parameters" : requestToken,
- @"x_reverse_auth_target" : [[self class] consumerKey]
- };
- NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"];
- SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
- requestMethod:SLRequestMethodPOST
- URL:url
- parameters:parameters];
- [request setAccount:twitterAccount];
- [request performRequestWithHandler:^(NSData *responseData,
- NSHTTPURLResponse *urlResponse,
- NSError *error) {
- NSString *responseStr = [[NSString alloc] initWithData:responseData
- encoding:NSUTF8StringEncoding];
- if (completionBlock) {
- completionBlock(responseStr, error);
- }
- }];
- }
- #pragma mark - Credentials
- + (NSString *)consumerKey {
- static NSString *consumerKey;
- if (consumerKey == nil) {
- consumerKey = @"bla-bl-bla";
- }
- return consumerKey;
- }
- + (NSString *)consumerSecret {
- static NSString *consumerSecret;
- if (consumerSecret == nil) {
- consumerSecret = @"bla-bla-bla";
- }
- return consumerSecret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement