Я использую фреймворки 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, но я бы хотел удалить этот ненужный шаг для пользователя.
Спасибо!
Джо