iPhone Twitter Интеграция: проверка входа - PullRequest
0 голосов
/ 17 июня 2010

Обновление:

Использование следующего возвращает ответ XML.Использовал NSXMLParser для проверки элемента «ошибки».Не самый чистый метод, но выполняет свою работу.Я открыт для предложений.

NSURLResponse *response;
NSError *error;

NSData* result = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *resultString = [[NSString alloc] initWithData:result encoding:NSASCIIStringEncoding];
NSLog(@"myResult:  %@", resultString);

Исходное сообщение:

Следующий код сообщения в твиттере:

NSString *compoundLoginString = [NSString stringWithFormat:@"http://%@:%@@twitter.com/statuses/update.xml",extractedUsername, extractedPassword];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
[NSURL URLWithString:compoundLoginString] 
cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20.0];

// The text to post
NSString *msg = tweetText;

[request setHTTPMethod:@"POST"];
[request setHTTPBody:[[NSString stringWithFormat:@"status=%@", msg] 
dataUsingEncoding:NSASCIIStringEncoding]];

NSURLResponse *response;
NSError *error;

if ([NSURLConnection sendSynchronousRequest:request 
returningResponse:&response error:&error] != nil){
    [self postSuccessfulAlert];
}else{
    [self postNotSuccessfulAlert];
} 

Мне интересно, как я могу проверить, еслиимя пользователя и пароль верны, прежде чем перейти к приведенному выше коду.

Я нашел следующий код в руководстве, но не уверен, как бы я реализовал или вызвал эту функцию.

- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge {

    if ([challenge previousFailureCount] == 0) {
        NSURLCredential *newCredential;
        newCredential=[NSURLCredential credentialWithUser:[self username]
                                                 password:[self password]
                                              persistence:NSURLCredentialPersistenceNone];
        [[challenge sender] useCredential:newCredential
               forAuthenticationChallenge:challenge];
    } else {
        [[challenge sender] cancelAuthenticationChallenge:challenge];
        // inform the user that the user name and password
        // in the preferences are incorrect
        NSLog(@"Invalid Username or Password");
    }

}

Есть идеи?

Обратите внимание, я взял фрагменты кода из обоих следующих руководств:

http://iosdevelopertips.com/networking/post-to-a-twitter-account-from-the-iphone.html

и

http://icodeblog.com/2009/07/09/integrating-twitter-into-your-applications/

1 Ответ

0 голосов
/ 18 июня 2010

Вы можете проверить правильность имени пользователя и логина, сделав аутентифицированный запрос к http://twitter.com/account/verify_credentials.xml или http://api.twitter.com/1/account/verify_credentials.xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...