Не удается настроить аутентификацию обратного вызова Twitter OAuth для работы в приложении Какао - PullRequest
2 голосов
/ 15 августа 2011

Я использую фреймворки MGTwitterEngine и OAuthConsumer. И в основном следуя инструкциям на UsingOAuthConsumer .

Для того чтобы использовать OAuth и не заставлять пользователя работать с аутентификацией на основе oob PIN, необходимо включить обратный вызов приложения. Чтобы сделать это в настольном (или iOS) приложении, вам нужно настроить пользовательскую схему URI, которая передается обработчику событий в приложении. Я получил это работает, и протестировал его с помощью пользовательского URI в Safari. Мое приложение открывается, и вызывается правильный метод. Все идет нормально.

Чтобы сделать это для Twitter, вам нужно указать URI обратного вызова в настройках приложения на сайте разработчика Twitter. Здесь начинается проблема. Twitter не допустит нестандартных URI. Так что «myapp: // oauth /» не допускается. Это должен быть http или https URI. Все веб-сайты, на которые я ссылался, говорят, что нужно поместить здесь заполнитель и переопределить запрос запроса токена. Хорошо, поэтому я разместил фиктивный URL для моего сайта здесь. Теперь для реализации переопределения. Вот код из одного из комментариев о том, как это сделать:

OAMutableURLRequest *request = [[OAMutableURLRequest alloc] initWithURL:url
                                                               consumer:consumer
                                                                  token:nil   
                                                                  realm:nil  
                                                      signatureProvider:nil]; 

[request setOAuthParameterName:@"oauth_callback" withValue:@"callbackurl:"];

Когда я добавляю этот второй вызов метода, запрос к твиттеру теперь не выполняется. NSURLErrorDomain ошибка -1012 или что-то подобное (я забыл записать номер).

Я пробовал несколько способов, но так и не смог переопределить URL обратного вызова. У кого-нибудь есть безошибочный способ сделать это? На данный момент я изменил приложение, чтобы использовать метод проверки подлинности OOB PIN, но я бы хотел удалить этот ненужный шаг для пользователя.

Спасибо!

Джо

1 Ответ

0 голосов
/ 03 сентября 2011

Я, наконец, отказался от платформы OAuthConsumer и переключился на платформу Google GTMOAuth. Это отлично работает.

...