target-c: ошибка входа в Twitter на iPad: - PullRequest
4 голосов
/ 02 января 2012

enter image description here Я использую классический проект Twitter с открытым исходным кодом Ben Gottlieb для создания логина в Твиттере для iPad.

Мой код для создания движка и отображения контроллера входа:

if (!_engine) {
        _engine = [[SA_OAuthTwitterEngine alloc] initOAuthWithDelegate:self];
        [_engine setConsumerKey:@"kConsumerKey"];
        [_engine setConsumerSecret:@"kConsumerSecret"];
    }

    if (![_engine isAuthorized]){
        UIViewController *controller = [SA_OAuthTwitterController controllerToEnterCredentialsWithTwitterEngine:_engine delegate:self];
        if (controller){
            if ([controller respondsToSelector:@selector(setModalPresentationStyle:)] == YES) {
                controller.modalPresentationStyle = UIModalPresentationFormSheet;
            }
            [self presentModalViewController:controller animated:YES];
            return;
        }

    }

Кроме того, я установил для URL-адресов SA_OAuthTwitterEngine значение https:

self.requestTokenURL = [NSURL URLWithString: @"https://twitter.com/oauth/request_token"];
self.accessTokenURL = [NSURL URLWithString: @"https://twitter.com/oauth/access_token"];
self.authorizeURL = [NSURL URLWithString: @"https://twitter.com/oauth/authorize"];

, а мой TWITTER_DOMAIN в MGTwitterEngine.m был изменен на:

#define TWITTER_DOMAIN          @"api.twitter.com/1"

Запуск этого кодаВ симуляторе для iPhone и iPad работает как шарм. ОДНАКО, всякий раз, когда я тестирую этот код на устройстве iPad, я выдаю эту ошибку:

Ух ты!Токен запроса для этой страницы недействителен.Возможно, он уже использовался или срок его действия истек, поскольку он слишком старый.Пожалуйста, вернитесь на сайт или приложение, которое отправило вас сюда, и попробуйте снова;вероятно, это была просто ошибка

(скриншот прилагается).

Будем весьма благодарны за любые предложения о том, как отобразить стандартный экран входа в систему

Ответы [ 2 ]

2 голосов
/ 14 июня 2012

У меня была та же проблема, и я попробовал путь Джеффа. Это тоже не сработало. По неизвестной причине проверьте настройки времени и установите автоматическую настройку времени. Это сработало для меня.

1 голос
/ 31 января 2012

Я столкнулся с той же проблемой. Что происходит, так это то, что запрос не получает токен запроса. Вы можете явно назвать это:

SA_OAuthTwitterEngine *myEngine;
[myEngine requestRequestToken];

Надеюсь, это поможет!

...