2013-07-31 1 views
0

Как использовать TWRequest для обеих прошивки 5 для получения Twitter Сведения о пользователеКак использовать IOS TWRequest для прошивки 5 для получения Twitter Информации о пользователе

TWRequest работал раньше, и я использовал таким образом

NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1/users/show.json"]; 
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:twittername,@"screen_name",nil]; 
           request = [[TWRequest alloc] initWithURL:url 
                     parameters:params 
                    requestMethod:TWRequestMethodGET]; 

Но в последнее время, Twitter закрыл апи версии 1 и реализованы версии 1.1, и в настоящее время выше логика не работает в прошивке 5, в связи с API устаревание может быть ...

Я использую SLRequest для прошивки 6 IT работает отлично, но я хотел бы знать, как мы можем g и др Twitter информация о пользователе в прошивке 5

ответ

3

Попробуйте это:

NSURL *url = [NSURL URLWithString:@"https://api.twitter.com/1.1/users/show.json"]; 
    NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:twittername,@"screen_name",nil]; 
    request = [[TWRequest alloc] initWithURL:url parameters:params requestMethod:TWRequestMethodGET];                 

    ACAccountStore *accountStore = [[ACAccountStore alloc] init]; 
    ACAccountType *twitterAccountType = [accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierTwitter]; 
    NSArray *twitterAccounts = [accountStore accountsWithAccountType:twitterAccountType]; 

    // Runing on iOS 6 
    if (NSClassFromString(@"SLComposeViewController") && [SLComposeViewController isAvailableForServiceType:SLServiceTypeTwitter]) 
    { 
     [accountStore requestAccessToAccountsWithType:twitterAccountType options:NULL completion:^(BOOL granted, NSError *error) 
     { 
      if (granted) 
      { 
       SLRequest *request = [SLRequest requestForServiceType:SLServiceTypeTwitter requestMethod:SLRequestMethodGET URL:url          parameters:parameters]; 

       [request setAccount:[twitterAccounts lastObject]]; 

       dispatch_async(dispatch_get_main_queue(),^        
       { 

        [NSURLConnection sendAsynchronousRequest:request.preparedURLRequest queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response1, NSData *data, NSError *error)      
        {       
         dispatch_async(dispatch_get_main_queue(),^          
         {        
          if (data)         
          {         
           [self loadData:data];         
          }        
         });           
        }];      
       }); 
      } 
     }]; 
    } 
    else if (NSClassFromString(@"TWTweetComposeViewController") && [TWTweetComposeViewController canSendTweet]) // Runing on iOS 5 
    { 
     [accountStore requestAccessToAccountsWithType:twitterAccountType withCompletionHandler:^(BOOL granted, NSError *error) 
     { 
      if (granted) 
      { 
       TWRequest *request = [[TWRequest alloc] initWithURL:url parameters:parameters requestMethod:TWRequestMethodGET]; 
       [request setAccount:[twitterAccounts lastObject]]; 

       dispatch_async(dispatch_get_main_queue(),^        
       {      
        [NSURLConnection sendAsynchronousRequest:request.signedURLRequest queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response1, NSData *data, NSError *error)      
        {       
         dispatch_async(dispatch_get_main_queue(),^          
         {        
          if (data)         
          {         
           [self loadData:data]; 
          }        
         }); 
        }]; 
       }); 
      } 
     }]; 
    } 
} 
+1

Спасибо Маулик! Но иногда он рушится в этом месте, возможно, это проблема с потоками .. [request setAccount: [twitterAccounts lastObject]]; мы можем решить это? – Ganesh

+0

Каков ваш журнал аварий? – Maulik

+0

Я также получаю такую ​​же проблему в ios 5, она дает EXC_BAD_ACCESS, –

 Смежные вопросы

  • Нет связанных вопросов^_^