2010-07-27 3 views
18

хорошо Я новичок в facebook api, и совсем недавно кто-то сказал мне, что я использую старый api.Проверьте, если пользователь зарегистрировался в New Facebook API

Так что теперь я не могу понять, как проверить, зарегистрирован ли пользователь на моем сайте с новым api.

все, что я действительно имею

<div id="fb-root"></div> 
<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script> 
    FB.init({appId: '(appid)', status: true, cookie: true, xfbml: true}); 
    FB.Event.subscribe('auth.sessionChange', function(response) { 
    if (response.session) { 
     // A user has logged in, and a new cookie has been saved 
    } else { 
     // The user has logged out, and the cookie has been cleared 
    } 
    }); 
</script> 

и кнопку Логин.

Если кто-то может показать мне, как проверить, если кому-то вошли в систему (или в том, что он прямо там?), Потому что я хотел бы его изменить кнопку входа, расположенную в DIV с именем

<div id="fbuser">

, чтобы приветствовать пользователя.

Или даже если вы можете указать мне на некоторые полезные уроки, это было бы здорово!

Благодаря

ответ

21

Вот пример, где fbLoginStatus() функция будет автоматически вызываться при входе пользователя в систему/выхода из системы, так что вы можете решить, какой ДИВ отображать там.

<body> 
<div id="fb-root"></div> 
<script> 
    function fbLoginStatus(response) { 
    if(response.status === 'connected') { 
     //user is logged in, display profile div 
    } else { 
     //user is not logged in, display guest div 
    } 
    } 
    window.fbAsyncInit = function() { 
    FB.init({appId: 'your app id', status: true, cookie: true, xfbml: true}); 
    FB.getLoginStatus(fbLoginStatus); 
    FB.Event.subscribe('auth.statusChange', fbLoginStatus); 
    }; 
    (function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol + 
     '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 
</script> 

Теперь, если вам нужно проверить, если пользователь сейчас вошли в систему (например, на нажатие кнопки):

if(FB.getSession() != null) { 
    //logged user id: FB.getSession().uid 
} else { 
    //user is not logged in 
} 

К сожалению, не знаю, какие хорошие учебники.

+1

Эй, действительно хороший. Огромное спасибо. Сделал ли второй бит какой-нибудь «Uncaught ReferenceError: FB не определен» – pal4life

+1

может предложить любой альтернативный вариант php – Sourabh

Смежные вопросы