Перенаправление после нажатия на кнопку входа в Facebook, даже если вы уже вошли в Facebook - PullRequest
8 голосов
/ 29 апреля 2011

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

Если пользовательне авторизованный в Facebook, появится всплывающее окно с запросом его учетных данных, после чего он будет перенаправлен на loggedin.html.

<div id="fb-root"></div>
<fb:login-button perms="email"></fb:login-button>

<script>
    window.fbAsyncInit = function() {
        FB.init({
            appId  : 'xxxxxxxxxxxx',
            status : true,
            cookie : true,
            xfbml  : true
        });

        FB.Event.subscribe('auth.login', function() {
            window.location = "loggedin.html";
        });
    };

    (function() {
        var e = document.createElement('script');
        e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
        e.async = true;
        document.getElementById('fb-root').appendChild(e);
    }());
</script>

Если пользователь уже вошел в Facebook, когда он нажимает кнопку всплывающего окнапоявляются и исчезают сразу, я в порядке с этим.Но пользователь не перенаправлен на loggedin.html.Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Если вы используете PHP SDK, вы можете использовать следующий код:

require_once 'path/to/facebook.php';
define('A_ID', '*YOUR APP ID*');
define('A_SECRET', 'YOUR APP SECRET');

$facebook = new Facebook(array('appId' => A_ID, 'secret' => A_SECRET, 'cookie' => true));
$userId = $facebook->getUser();

if (!$userId):
  ?>
    <!-- HTML to show if the $userId isn't available (user isn't logged in) -->
  <?php
else:
  ?>
    <!-- HTML to show if the $userId is available (user is logged in)-->
  <?php
endif;

В идеале вы должны использовать PHP SDK, так как он дает вам больший контроль над данными и способом их отображения, чемиспользуя JS SDK для вставки данных.

У Facebook есть ссылка на PHP SDK здесь: developers.facebook.com / docs / reference / php /

JavaScriptСсылка на SDK находится здесь: developers.facebook.com / docs / reference / javascript /

0 голосов
/ 02 мая 2011

У меня была такая же проблема.Я решил это, используя обычную ссылку вместо штуковины и добавив обработчик кликов к этой ссылке с помощью функции javascript facebook FB.login

http://developers.facebook.com/docs/reference/javascript/FB.login/

В различных ответах, которые я мог обработатьсоответствующие вещи Ajax.

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