2011-07-15 56 views
1

我在我的應用中使用Twitter + OAuth。iPhone:無法使用Twitter + OAuth發送推文

但我在我的NSLog中出現跟隨錯誤。

Request E0B47D37-CE8C-406A-867E-2133E2469397 failed with error Error Domain=HTTP Code=401 "The operation couldn’t be completed. (HTTP error 401.)" 

編碼:.h文件中

#import "SA_OAuthTwitterEngine.h" 
#import "SA_OAuthTwitterController.h" 

@interface FirstViewController: UIViewController <SA_OAuthTwitterControllerDelegate,SA_OAuthTwitterEngineDelegate> 
{ 
SA_OAuthTwitterEngine *_engine;  
} 

編碼:.m文件

#define kOAuthConsumerKey @"consumer_key" 
#define kOAuthConsumerSecret @"consumer_secrect" 

-(void)viewWillAppear:(BOOL)animated 
{ 


    if(!_engine) 
    { 
     _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self]; 
     _engine.consumerKey = kOAuthConsumerKey; 
     _engine.consumerSecret = kOAuthConsumerSecret; 
    } 
} 

-(IBAction) buttonPressed 
{ 
    if(![_engine isAuthorized]) 
     { 
      UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self]; 

      if(controller) 
      { 
       [self presentModalViewController:controller animated:YES]; 
      } 
     } 
     else 
     { 
      NSLog(@"twitter msg : %@",twitterMessage); 
      [_engine sendUpdate:twitterMessage]; 

       UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Twitter" message:@"Post Successful" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
     } 

    } 
} 


#pragma mark SA_OAuthTwitterEngineDelegate 

    -(void) storedCachedTwitterOAuthData: (NSString *)data forUsername: (NSString *)username 
    { 
     NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
     [defaults setObject:data forKey:@"authData"]; 
     [defaults synchronize]; 
    } 

    -(NSString *) cachedTwitterOAuthDataForUsername: (NSString *)username 
    { 
     return [[NSUserDefaults standardUserDefaults] objectForKey:@"authData"]; 
    } 

    #pragma mark TwitterEngineDelegate 

    -(void) requestSucceeded: (NSString *) requestIdentifier 
    { 
     NSLog(@"Request %@ succeeded", requestIdentifier); 
    } 

    -(void)requestFailed: (NSString *) requestIdentifier withError:(NSError *)error 
    { 

     NSLog(@"Request %@ failed with error %@",requestIdentifier,error); 
    } 

可能是什麼問題?

+3

這是「推文」,而不是「Twits」。 **現在**我明白了爲什麼Twitter決定做商標事情...... – BoltClock

+0

^+1我正要說同樣的事情。不過,我有時候很想把它們叫做twits。 :/ – Sum

+0

看起來像一個401未經授權。我們將不得不看你如何連接(代碼)來幫助你 – Sum

回答

1

生成新cosumerKey和祕密密鑰可以解決您的問題。有時服務器在twitter也可能不會迴應,所以twit可能不會發布

0

您是否更改了.m文件頂部的#define語句以使用您的實際使用者密鑰和使用者密鑰?

1

至於你的編碼部分而言,一切都很好,除非你用你的實際消費的關鍵,即使我面臨着同樣的疑難問題產生的不同consumerKey和祕密密鑰和DAT做到了