2014-02-24 65 views
0

我在我的應用程序中整合了twitter。我搜索了一堆,找不到合適的步驟。 誰能告訴我它是如何工作的細節。 謝謝。iOS - Twitter整合1.1 oauth

+0

參見https://dev.twitter.com/docs/ios –

回答

1

我希望這會幫助你。 。 。

1.新增下列類到您的項目
GTMOAuthAuthentication.h /平方米
GTMOAuthSignIn.h /平方米
GTMHTTPFetcher.h /平方米
GTMOAuthViewControllerTouch.h /平方米
GTMOAuthViewTouch.xib

2。添加以下框架 Security.framework和SystemConfiguration.framework。

3.爲應用程序目標的「其他鏈接器標誌」設置-ObjC構建選項。

4。那麼是時候進行一些編碼了。

import GTMOAuthAuthentication.h and GTMOAuthViewControllerTouch.h 

    - (void)signInWithTwitter 
    { 
    NSURL *requestURL = [NSURL URLWithString:@"https://api.twitter.com/oauth/request_token"]; 
    NSURL *accessURL = [NSURL URLWithString:@"https://api.twitter.com/oauth/access_token"]; 
    NSURL *authorizeURL = [NSURL URLWithString:@"https://api.twitter.com/oauth/authorize"]; 
    NSString *scope = @"http://api.twitter.com/"; 

    GTMOAuthAuthentication *auth = [self authForTwitter]; 

    [auth setCallback:@"http://www.noop.com/OAuthCallback"]; 

    GTMOAuthViewControllerTouch *viewController; 

    viewController = [[GTMOAuthViewControllerTouch alloc] initWithScope:scope 
                   language:nil 
                  requestTokenURL:requestURL 
                 authorizeTokenURL:authorizeURL 
                  accessTokenURL:accessURL 
                  authentication:auth 
                  appServiceName:@"AppName : Twitter" 
                   delegate:self 
    finishedSelector:@selector(viewController:finishedWithAuth:error:)]; 

    [appDelegate.navigationController pushViewController:viewController animated:YES]; 
    } 

    - (GTMOAuthAuthentication *)authForTwitter { 
    GTMOAuthAuthentication *auth = [[GTMOAuthAuthentication alloc] initWithSignatureMethod:kGTMOAuthSignatureMethodHMAC_SHA1 
       consumerKey:TWITTER_CONSUMER_KEY 
       privateKey:TWITTER_CONSUMER_SECRET]; 

    [auth setServiceProvider:@"Twitter"]; 

    return auth; 
    } 

    - (void)viewController:(GTMOAuthViewControllerTouch *)viewController finishedWithAuth:(GTMOAuthAuthentication *)auth error:(NSError *)error { 

     if(error) 
     { 
      //handle error 
     } 
     else 
     { 
      // do stuff as per your app. 
     } 
    } 

NOte : if you get error message like "failed to validate oauth signature and token" then check you system time is correct or not . 
1

1)下載oauth Library for autodication for ios。 2)所有按鍵 消費重點,消費者分泌,訪問密鑰訪問令牌 添加到INT .... 3)在Twitter上創建帳戶 - (空)的GetList {

OAConsumer *con = [[OAConsumer alloc]initWithKey:@"TwitterConsumerKey" secret:@"TwitterConsumerSecret"]; 


OAToken *p=[[OAToken alloc]initWithKey:[@"TwitterAccessTokenKey" secret:@"TwitterAccessTokenSecret"]; 

INT kPageCount = 10; NSString * pro = [NSString stringWithFormat:@「%@ count =%i」,@「​​https://api.twitter.com/1.1/statuses/user_timeline.json?」,kPageCount];

NSURL *tt=[NSURL URLWithString:pro]; 

    OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:tt 
               consumer:con 
                token:p 
                realm:nil 
                  signatureProvider:nil] ; 

    [request setHTTPMethod:@"GET"]; 
    fetcher = [[OADataFetcher alloc] init] ;   
    [fetcher fetchDataWithRequest:request 
         delegate:self 
       didFinishSelector:@selector(requestTokenTicket:didFinishWithData:) 
        didFailSelector:@selector(requestTokenTicket:didFailWithError:)]; 

} 

} 

- (空)requestTokenTicket:(OAServiceTicket *)票didFailWithError:(NSError *)錯誤{

if (err.domain==NSURLErrorDomain && err.code==-1001) { 
    [self getList]; 
} 

} - (空)requestTokenTicket:(OAServiceTicket *)票didFinishWithData:(NSData的*)數據{

NSString *responseBody = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 


NSLog(@"responseBody :%@",responseBody); 

}