Наш веб-сайт позволяет пользователям создавать небольшие виджеты, которые могут быть встроены на сторонние сайты. Когда конечный пользователь взаимодействует с нашим виджетом на каком-либо сайте, мы хотим опубликовать обновление Twitter от его имени и затем отобразить сообщение для пользователя на самом виджете (при условии, что обновление Twitter было успешным). Для этого мы использовали твиттер API с базовой аутентификацией (мы просили пользователя ввести его имя пользователя и пароль в самом виджете). Теперь, когда твиттер перешел исключительно на OAuth, мы создали приложение для твиттера для использования OAuth API.
Теперь, один из способов сделать это - зарегистрировать наше приложение для Twitter в качестве клиентского приложения (вместо приложения для браузера). Для этого возможный поток действий заключается в том, что мы просим пользователя перейти по URL-адресу (ссылка открывается и открывается в новом окне), а затем пройти аутентификацию в Twitter, дать разрешение нашему приложению, вернуться к виджету и ввести пин-код, который предоставляет Twitter , это громоздко.
Другой способ - зарегистрировать приложение как веб-приложение. Как только пользователь аутентифицируется и выдает разрешения (в новом окне, открытом как щелчок ссылки), мы просим твиттер перенаправить на наш собственный URL-адрес с токеном доступа и другой информацией (необходимой для твита пользователя). Итак, твит должен работать нормально. Но как я могу уведомить виджет (запущенный внутри iframe в исходном окне), был ли твит успешным или нет?
Я могу придумать решение на основе опроса, но должен быть лучший способ, верно?
Кроме того, я не могу использовать window.open (вместо ссылки с href = и target = _blank), потому что браузеры обрабатывают их как всплывающие окна и блокируют их.