Twitter: аутентификация изменена? Приложение внезапно вылетает в окне аутентификации (Titanium)

#iphone #authentication #twitter #crash #titanium

#iPhone #аутентификация #Twitter #сбой #titanium

Вопрос:

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

http://www.pastie.org/1846358

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

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

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

Спасибо!

Комментарии:

1. Теперь проблема решена, окно аутентификации вернулось к старому. Кто-нибудь может объяснить такое поведение? Это довольно раздражает, если это повторится, если приложение будет опубликовано. У меня был совершенно другой всплывающий экран для авторизации вашей учетной записи в приложении с помощью Twitter. Через час он снова сменился на обычный.

2. Вы пробовали поспрашивать в службе поддержки Twitter, они контролируют все это.

Ответ №1:

Если вы используете 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:amp;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];
}
}