iPhone: невозможно отправить твиты с помощью Twitter + OAuth - PullRequest
1 голос
/ 15 июля 2011

Я использую 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 file

 #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 ]

1 голос
/ 19 августа 2011

Поскольку ваша часть кодирования обеспокоена, все в порядке, если вы не использовали свой реальный потребительский ключ. Даже я столкнулся с той же проблемой. Я сгенерировал разные consumerKey и secretKey, и dat сделал это

1 голос
/ 26 августа 2011

Создание новых cosumerKey и secretKey может решить вашу проблему. Иногда сервер в твиттере также может не отвечать, так что твит может не публиковать

0 голосов
/ 15 июля 2011

Изменили ли вы операторы #define в верхней части вашего файла .m, чтобы использовать свой действительный ключ клиента и секрет клиента?

...