Проблемы с обратным вызовом Twitter OAuth для веб-виджета - PullRequest
1 голос
/ 10 сентября 2010

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

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

Другой способ - зарегистрировать приложение как веб-приложение. Как только пользователь аутентифицируется и выдает разрешения (в новом окне, открытом как щелчок ссылки), мы просим твиттер перенаправить на наш собственный URL-адрес с токеном доступа и другой информацией (необходимой для твита пользователя). Итак, твит должен работать нормально. Но как я могу уведомить виджет (запущенный внутри iframe в исходном окне), был ли твит успешным или нет?

Я могу придумать решение на основе опроса, но должен быть лучший способ, верно?

Кроме того, я не могу использовать window.open (вместо ссылки с href = и target = _blank), потому что браузеры обрабатывают их как всплывающие окна и блокируют их.

1 Ответ

1 голос
/ 10 сентября 2010

Есть 2 варианта (один из которых я лично использую).

  1. Вы можете сохранить тот факт, что он был просто аутентифицирован токеном в сеансе (в скрипте / странице обратного вызова), а на странице iframe есть таймер JavaScript, проверяющий другой скрипт (через AJAX), является ли сеанс был установлен или нет - если это так, то iframe будет знать, что это успешно.

  2. Второй вариант - сделать то же самое, за исключением проверки базы данных, если она сохранена или нет (без использования сеансов).

Я рекомендую сделать 1-й вариант, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...