Плагин регистрации Facebook не перенаправляет / отправляет данные вошедших в систему пользователей - PullRequest
4 голосов
/ 18 октября 2011

Я только что попытался использовать плагин регистрации Facebook на вкладке страницы iframe.

Если кому-то интересно, почему я хочу это сделать, я хочу использовать плагин регистрации Facebook для создания рассылки новостей.Форма регистрации на моей странице FB.

Я пытался с этим кодом:

<iframe src="https://www.facebook.com/plugins/registration.php?
             client_id=113869198637480&
             redirect_uri=&
             fields=name,birthday,gender,location,email"
        scrolling="auto"
        frameborder="no"
        style="border:none"
        allowTransparency="true"
        width="100%"
        height="330">
</iframe>

и этим кодом:

<div id="fb-root"></div>
<script src="https://connect.facebook.net/en_US/all.js#appId={YOUR_APP_ID}&xfbml=1"></script>

<fb:registration 
  fields="name,birthday,gender,location,email" 
  redirect-uri=""
  width="530">
</fb:registration>

В обоих случаях я использовал APP_IDприложение вкладки страницы и URL-адрес холста для этой вкладки страницы, но я заполнил поле веб-сайта используемым веб-сайтом.

Когда я извлекаю предварительно заполненную информацию FB и заполняю форму, var_dumpна принимающей странице выдает правильную информацию, но когда я отправляю ее с предварительно заполненной информацией о FB, появляется всплывающее сообщение, что вы регистрируетесь в APP_NAME_HERE, если хотите сделать это, нажмите «продолжить» или отмените, еслиt (что-то подобное), и когда я нажимаю продолжить, ничего не происходит.

Я использовал Firebug для проверки страницы, и я думаю, что данные отправляются в другой iframe, но яне знаю, как получить к нему доступ.Я попытался изменить цель на _top, _self и _parent, но это тоже не сработало.Я также попытался создать новое приложение, в частности, с помощью атрибута веб-сайта, и это тоже не получилось.Любая помощь с благодарностью получена.

Ответы [ 4 ]

1 голос
/ 24 октября 2011

Насколько я могу судить, атрибут target не работает при использовании предварительно заполненной информации.Возможно, это как-то связано с тем, как должен происходить поток, когда появляется всплывающее окно с подтверждением, но AFAIK не задокументировано, что эти два нельзя использовать вместе.В любом случае предварительно заполненные данные, по-видимому, приводят к принудительному target=_top независимо от того, что вы указываете в атрибутах.

В этом случае вам придется указать адрес внешней страницы в качествеredirect_uri и обработайте данные тут же, а затем перенаправьте обратно на адрес страницы Facebook.При необходимости вы можете передать некоторые данные обратно, используя параметр app_data в строке запроса.

0 голосов
/ 24 октября 2011

Скорее всего, вы уже помечены как зарегистрированные и получаете обратно cookie / заголовок для подключения FB к работе. В этом случае вам необходимо отменить регистрацию приложения на Facebook на странице управления приложениями. Как только вы это сделаете, кнопка снова заработает.

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

https://developers.facebook.com/docs/plugins/registration/

Вы можете отладить свой статус регистрации, используя

FB.Event.subscribe('auth.statusChange', function(response) {
    if(!response.authResponse) return;
    console.log(response)
});

Надеюсь, это поможет.

0 голосов
/ 21 октября 2011

Во втором коде redirect-uri = "" необходимо значение.Это должно быть префиксом вашего сайта URL.

0 голосов
/ 21 октября 2011

Мне кажется, что вы что-то упустили:

Здесь вы можете видеть тот атрибут onvalidate, который содержит имя функции js, вызываемой после нажатия кнопки Register, которому передается весь объект, содержащий информацию о пользователе. Привет ;) Лука

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