Я использовал библиотеку 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