Advertisement
Guest User

Untitled

a guest
Sep 23rd, 2014
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.59 KB | None | 0 0
  1. + (void)getRequestTokenWithCompletion:(void (^)(NSString *requestToken,
  2. NSError *error))completionBlock {
  3.  
  4. NSString *consumerKey = [[self class] consumerKey];
  5. NSString *consumerSecret = [[self class] consumerSecret];
  6.  
  7. NSDictionary *parameters = @{@"x_auth_mode" : @"reverse_auth"};
  8.  
  9. NSMutableString *paramsAsString = [[NSMutableString alloc] init];
  10. [parameters enumerateKeysAndObjectsUsingBlock: ^(id key, id obj, BOOL *stop) {
  11. [paramsAsString appendFormat:@"%@=%@&", key, obj];
  12. }];
  13.  
  14. NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/oauth/request_token"];
  15.  
  16. NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url];
  17. request.HTTPMethod = @"POST";
  18. request.HTTPBody = [paramsAsString dataUsingEncoding:NSUTF8StringEncoding];
  19.  
  20. NSString *authorizationHeader = OAuthorizationHeader(request.URL,
  21. request.HTTPMethod,
  22. request.HTTPBody,
  23. consumerKey,
  24. consumerSecret, nil, nil);
  25.  
  26. [request setValue:authorizationHeader forHTTPHeaderField:@"Authorization"];
  27.  
  28. [NSURLConnection sendAsynchronousRequest:request
  29. queue:[NSOperationQueue mainQueue]
  30. completionHandler:^(NSURLResponse *response,
  31. NSData *data,
  32. NSError *connectionError) {
  33.  
  34. NSString *requestToken =
  35. [[NSString alloc] initWithData:data
  36. encoding:NSUTF8StringEncoding];
  37. if (completionBlock) {
  38. completionBlock(requestToken, connectionError);
  39. }
  40. }];
  41. }
  42.  
  43.  
  44. + (void)getAccessTokenForAccount:(ACAccount *)twitterAccount
  45. withRequestToken:(NSString *)requestToken
  46. completion:(void (^)(NSString *accessToken,
  47. NSError *error))completionBlock {
  48.  
  49.  
  50. NSDictionary *parameters = @{
  51. @"x_reverse_auth_parameters" : requestToken,
  52. @"x_reverse_auth_target" : [[self class] consumerKey]
  53. };
  54.  
  55. NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"];
  56.  
  57. SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter
  58. requestMethod:SLRequestMethodPOST
  59. URL:url
  60. parameters:parameters];
  61. [request setAccount:twitterAccount];
  62.  
  63. [request performRequestWithHandler:^(NSData *responseData,
  64. NSHTTPURLResponse *urlResponse,
  65. NSError *error) {
  66.  
  67. NSString *responseStr = [[NSString alloc] initWithData:responseData
  68. encoding:NSUTF8StringEncoding];
  69.  
  70. if (completionBlock) {
  71. completionBlock(responseStr, error);
  72. }
  73. }];
  74. }
  75.  
  76.  
  77. #pragma mark - Credentials
  78.  
  79. + (NSString *)consumerKey {
  80.  
  81. static NSString *consumerKey;
  82. if (consumerKey == nil) {
  83. consumerKey = @"bla-bl-bla";
  84. }
  85.  
  86. return consumerKey;
  87. }
  88.  
  89. + (NSString *)consumerSecret {
  90.  
  91. static NSString *consumerSecret;
  92. if (consumerSecret == nil) {
  93. consumerSecret = @"bla-bla-bla";
  94. }
  95. return consumerSecret;
  96. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement