Как пройти аутентификацию в твиттере с iphone, используя asihttp? - PullRequest
1 голос
/ 15 июня 2011

Я использовал библиотеку asihttp для подключения к твиттеру.

Идея состоит в том, чтобы отправить запрос на вход в систему, получить ответ и извлечь идентификатор сеанса / код авторизации из заголовка cookie ответа.Затем вы можете использовать этот идентификатор сессии / код авторизации для последовательных вызовов.

Я не получаю код авторизации, потому что аутентификация не удалась.Как я могу это исправить?

код ниже:

 - (void) login {
 NSString *username = @"user";
 NSString *password = @"pass";
 NSURL *url = [NSURL URLWithString:@"https://twitter.com/sessions?phx=1"];

 ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease]; 

 [request addRequestHeader:@"User-Agent" value: @"ASIHTTPRequest"];

 [request setPostValue:username forKey:@"session[username_or_email]"];
 [request setPostValue:password forKey:@"session[password]"];

 [request setDelegate: self];
 [request setDidFailSelector: @selector(loginRequestFailed:)];
 [request setDidFinishSelector: @selector(loginRequestFinished:)];

 [request startAsynchronous];
}

- (void)loginRequestFailed:(ASIHTTPRequest *)request {
  NSError *error = [request error];
  NSLog(@"login request failed with error: %@", [error localizedDescription]);  
}

- (void)loginRequestFinished:(ASIHTTPRequest *)request {
   NSString *responseString = [[request responseHeaders] objectForKey:@"Set-Cookie"];   
   NSLog(@"%@",responseString);
}

Я попытался подключиться из оболочки, и он работает.

curl -d 'session[user_or_emai]=user&session[password]=pass' https://twitter.com/sessions

1 Ответ

2 голосов
/ 26 июня 2011

Не царапайте твиттер.com.Это закончится твоим отстранением.Вместо этого используйте утвержденный API для интеграции с Twitter.Вы можете прочитать о том, как аутентификация работает с API Twitter, как вы можете использовать xAuth для быстрого запуска аутентификации с помощью пароля пользователя и открытый исходный код , чтобы помочь получитьВы начали.

...