Трудности входа в Twitter с iPhone - PullRequest
1 голос
/ 15 апреля 2010

Я использую MGTwitterEngine для добавления функции Twitter в мое приложение. Очень легко просто запросить у пользователя имя пользователя и пароль, а затем начать публикацию. Странно, однако, что я заметил, что другие приложения (например, Foursquare и Brightkite) требуют от вас посещения их веб-сайта, чтобы связать вашу учетную запись Twitter с вашей учетной записью foursquare / brightkite / любой другой.

Почему они так делают?

Есть ли причина, по которой мое приложение не должно запрашивать у пользователя имя пользователя и пароль в Твиттере, хотя это было бы так просто?

Спасибо большое! Тристан

Ответы [ 3 ]

1 голос
/ 15 апреля 2010

Это потому, что вы используете Basic Auth , который является просто именем пользователя / паролем. В большинстве новых приложений Twitter используется более надежный OAuth , который требует от вас посещения Twitter.com, чтобы разрешить доступ, но не требует имени пользователя / пароля. В Twitter API docs утверждается, что поддержка Basic Auth скоро будет прекращена, поэтому вам следует также использовать OAuth.

0 голосов
/ 15 апреля 2010

Просто замените YOUR_TWITTER_USERNAME и YOUR_TWITTER_PASSWORD. Код ниже должен быть включен в ваш viewController.m

NSMutableURLRequest *theRequest=[NSMutableURLRequest requestWithURL: [NSURL 
URLWithString: @”http: //YOUR_TWITTER_USERNAME: YOUR_TWITTER_PASSWORD@twitter. com/
statuses/update. xml”]
    cachePolicy:NSURLRequestUseProtocolCachePolicy
    timeoutInterval: 60. 0] ;
  [theRequest setHTTPMethod: @”POST”] ;
  [theRequest setHTTPBody: [[NSString stringWithFormat: @”status=%@”, 
themessage] dataUsingEncoding: NSASCIIStringEncoding] ] ;
  NSURLResponse* response;
  NSError* error;
  NSData* result = [NSURLConnection sendSynchronousRequest:theRequest 
returningResponse: &response error: &error] ;
  NSLog( @”%@”, [[[ NSString alloc] initWithData: result 
encoding: NSASCIIStringEncoding] autorelease] ) ;
0 голосов
/ 15 апреля 2010

Twitter поддерживает OAuth, что позволяет вам получить доступ к их учетной записи, не спрашивая их пароль напрямую.

Основная проблема - безопасность.Что произойдет, если / когда ваша база данных будет взломана?Злоумышленники будут иметь доступ ко всем паролям вашего пользователя в Twitter.

С другой стороны, эти сайты не хранят пароли своих пользователей;если они взломаны, твиттер может легко отключить учетные данные oauth, блокируя любых злоумышленников, прежде чем они смогут причинить вред.

Использовать OAuth;это намного безопаснее.

...