Facebook Connect через Javascript не закрывается и не передает идентификатор сессии - PullRequest
3 голосов
/ 26 апреля 2010

Я пытаюсь аутентифицировать пользователей через Facebook Connect, используя пользовательскую кнопку Javascript:

<form>
<input type="button" value="Connect with Facebook" onclick="window.open('http://www.facebook.com/login.php?api_key=XXXXX&extern=1&fbconnect=1&req_perms=publish_stream,email&return_session=0&v=1.0&next=http%3A%2F%2Fwww.example.com%2Fxd_receiver.htm&fb_connect=1&cancel_url=http%3A%2F%2Fwww.example.com%2Fregister%2Fcancel', '_blank', 'top=442,width=480,height=460,resizable=yes', true)" onlogin='window.location="/register/step2"' />
</form>

Я могу аутентифицировать пользователей. Однако после аутентификации всплывающее окно остается открытым, а главное окно никуда не направлено. Фактически, это всплывающее окно, которое переходит в "/ register / step2"

Как я могу заставить окно входа в систему закрыться, как ожидается, и передать идентификатор сеанса facebook в / register / step2?

Спасибо!

Ответы [ 4 ]

1 голос
/ 21 июля 2010

Похоже, вы используете старый JS SDK (ваш пример кода сбивает с толку, но обработчик onlogin заставляет меня думать, что вы используете какой-то SDK). Сделайте себе одолжение и переключитесь на новый JS SDK . Затем используйте XFBML и <fb:login-button>:

<fb:login-button perms="read_stream"></fb:login-button>

Это сделает вашу жизнь намного проще и сделает большую часть тяжелой работы за вас.

0 голосов
/ 13 мая 2010

Дело в том, что вы должны закрыть всплывающее окно и перезагрузить главное окно самостоятельно путем кодирования.

Для этого существует пошаговое руководство .

0 голосов
/ 20 июля 2010

Вы можете использовать файл xd_receiver.html со следующим кодом:

<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"></script>

поместите его в папку шаблонов, а затем поместите этот код туда, где вы хотите, чтобы кнопка была на странице вашего приложения:

    <script src="http://static.ak.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript">
    </script>
    <script type="text/javascript">
      FB.init("API_KEY", "/xd_receiver.html",{ permsToRequestOnConnect : "email,publish_stream,photo_upload,offline_access" });

    function facebook_login() {
       window.location ="/register/step2"
    }
    </script>
    <fb:login-button onlogin="facebook_login();"></fb:login-button>

и добавьте один URL для получения xd_receiver и создайте для него представление

надеюсь, что это поможет вам

Спасибо

Ansh J

0 голосов
/ 07 мая 2010

Установлены ли настройки приложения Facebook для перенаправления на URL с поддержкой Django? Например, в моем URLconf у меня есть:

url(r'^facebook/setup/$', facebook_complete_reg, name="facebook_setup"),

Вид 'facebook_complete_reg' выглядит примерно так же, как вид 'setup' в источнике django-facebookconnect. Я хотел бы использовать этот файл, чтобы убедиться, что ваш вид «Возвращение из Facebook» выполняет правильные действия.

Наконец, убедитесь, что ваши шаблоны загружают правильный JavaSript. В моем основном шаблоне у меня загружено следующее:

{% load facebook_tags %}
{% facebook_js %}
{% initialize_facebook_connect %}

Это позволит вам использовать тег шаблона 'show_connect_button', что, как я полагаю, вы делаете.

Единственная другая возможность, о которой я могу подумать, это то, что вы используете блокировщик JavaScript или какой-либо подобный плагин для браузера. Можете ли вы опубликовать код?

Райан

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