Twitter: аутентификация изменилась?Приложение внезапно падает в окне аутентификации (Titanium) - PullRequest
0 голосов
/ 29 апреля 2011

Моя часть твиттера в моем приложении внезапно перестала работать.Когда я хочу аутентифицировать приложение вылетает.Я быстро вижу всплывающее окно для входа в систему (которое имеет новый макет), и оно вылетает со следующими ошибками:

http://www.pastie.org/1846358

Это сработалохорошо вчера, так что я думаю, есть проблема с новым макетом окна аутентификации или так?Я действительно не могу найти что-то в выводе, в чем проблема, кроме того, что он дает ошибки о вещах HTML.

Кто-нибудь может мне помочь?Или у кого-то есть такая же проблема, и подтвердить, что я не единственный?

Я использую Titanium SDK 1.6.2 и iPhone SDK 4.2.

Спасибо!

1 Ответ

1 голос
/ 06 мая 2011

Если вы используете MGTwitterEngine, перейдите к SA_OAuthTwitterController.m.И измени это:

- (void) webViewDidFinishLoad: (UIWebView *) webView {
NSError *error;
NSString *path = [[NSBundle mainBundle] pathForResource: @"jQueryInject" ofType: @"txt"];
NSString *dataSource = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding       error:&error];

if (dataSource == nil) {
    //YFLog(@"An error occured while processing the jQueryInject file");
}

//DLog(@"%@", [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].innerHTML"]);
[_webView stringByEvaluatingJavaScriptFromString:dataSource]; //This line injects the jQuery to make it look better
//check for auth_pin element
NSString *authPin = [[_webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('oauth_pin').innerHTML"] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
authPin = [[_webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('oauth_pin').getElementsByTagName('kbd')[0].getElementsByTagName('code')[0].innerHTML"] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
if (authPin.length == 0)
    authPin = [[_webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('oauth_pin').getElementsByTagName('a')[0].innerHTML"] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
//if the auth pin not found than check for the auth-pin elenent
if (authPin == nil || authPin.length == 0) {
    authPin = [[_webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('oauth-pin').innerHTML"] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    if (authPin.length == 0) {
        authPin = [[_webView stringByEvaluatingJavaScriptFromString: @"document.getElementById('oauth-pin').getElementsByTagName('a')[0].innerHTML"] stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];
    }
}
[_activityIndicator stopAnimating];
if (authPin.length) {
    [self gotPin: authPin];
} 
if ([_webView isLoading] || authPin.length) {
    [_webView setHidden:YES];
} else {
    [_webView setHidden:NO];
}
}
...