Как пройти аутентификацию с помощью установленного приложения Twitter

#ios #swift #authentication #twitter

Вопрос:

Если пользователь вошел в систему с установленным собственным приложением Twitter, я хочу, чтобы мое приложение открыло приложение Twitter для запроса авторизации.

Я уже реализовал поток, чтобы получить oauth_token возможность начать процесс входа в систему через api Twitter. Только в текущей документации по API ничего не говорится о том, как использовать собственное приложение iOS в этом процессе. Он отправляет обратно только URL-адрес для входа пользователя в систему.

 let url = URL(string: "https://api.twitter.com/oauth/authorize?oauth_token=(result.oauthToken)")!
            
DispatchQueue.main.async {
   UIApplication.shared.open(url)
}
 

Получив запрошенное oauth_token , я получаю эту ссылку. При открытии ссылки появится сообщение Webview для входа в систему. Не родное приложение Twitter для iOS.

Я попытался использовать глубокую ссылку, чтобы вручную запустить приложение Twitter, но не смог найти никаких ресурсов о том, как правильно настроить ссылку.

До сих пор я пробовал такие вещи, как:

 twitterauth://authorize?consumer_key=[KEY]amp;consumer_secret=[SECRET]amp;oauth_callback=swifter-[KEY]
 

или

 twitterauth://authorize?oauth_token=(result.oauthToken)
 

без всякого успеха…

Как упоминалось в другом посте, Clubhouse реализовал именно этот поток. Так что это возможно. Вопрос в том, как это сделать ? 😅

Ответ №1:

Этот поток, похоже, официально не поддерживался с момента выхода TwitterKit на пенсию 1 мая 2018 года. Любые приложения, которые все еще предлагают эту функциональность своим конечным пользователям, скорее всего, имеют какое-то партнерство с Twitter, чтобы разрешить это, которое в противном случае не задокументировано публично.

Причины этого были скудно описаны в соответствующей теме форумов разработчиков Twitter:

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

Я не могу сказать вам сегодня точно, когда мы перейдем к усовершенствованному решению, но над этим мы активно работаем.

Прямая ссылка

Официальное руководство состоит в том, чтобы использовать традиционный метод WebView до тех пор, пока Twitter официально не выпустит эту возможность повторно:

Я больше не верю, что это возможно, поэтому я бы посоветовал вам использовать полный поток OAuth. Я приношу извинения за то, что, возможно, это не то, что предпочитают ваши пользователи, но это документированный способ получения авторизации (мы не документируем и не поддерживаем схемы URL-адресов для собственного приложения iOS).

Прямая ссылка

Мы не поддерживаем и не документируем какие-либо способы входа пользователей в Twitter вне потока OAuth; любое использование недокументированных функций может быть изменено без предварительного уведомления.

Прямая ссылка


Как указано выше, Twitter, похоже, запрашивает отзывы об этом через свою страницу выбора пользователей, если вы сочтете нужным предложить повторную реализацию такой функции.