2009-02-26 5 views
2

J'essaie de faire ce qui est censé être assez simple avec facebook connect, mais n'ayant pas de chance. Lorsqu'un utilisateur se connecte, je souhaite afficher les détails des utilisateurs (actualisés sans recharger la page) et lorsque l'utilisateur se déconnecte, je dois revenir à l'état de connexion.déclencher des fonctions avec facebook connect

Le code est je

function update_user_box() 
{ 
    jQuery('span#loggedin').html('<fb:profile-pic uid="loggedinuser" facebook-logo="true"></fb:profile-pic><fb:login-button size="small" onclick="fbLogout()" autologoutlink="true"></fb:login-button>'); 
    jQuery('span#fbLogin, ul#otherLogin').hide(); 
    jQuery('div#popForecast li.otherLogin, ul.showList li.otherLogin').remove(); 
    jQuery('span#logged').text('1'); 
    FB.XFBML.Host.parseDomTree(); 
} 

function fbLogout() 
{ 
    FB.Connect.logout(); 
    jQuery('span#fbLogin').show(); 
    jQuery('span#loggedin').empty(); 
    jQuery('span#logged').text('0'); 
} 
FB.init('c0529b8c11709f2317ae643d854e3866', 'xd_receiver.htm'); 
FB.ensureInit(function(){ 
    FB.Connect.ifUserConnected(update_user_box); 
}); 

je peux connecter l'utilisateur et, mais rien ne change d'autre. Je ne peux même pas déclencher une alerte à partir de mes fonctions.

Pour une raison quelconque, le code HTML que j'utilise ne s'affiche pas dans les tags pré, cependant, lors du rechargement de la page, l'utilisateur est affiché (ou non), il n'est donc pas directement déclenché les fonctions javascript. Mais l'actualisation de la page lance la fonction correcte.

L'erreur que je reçois dans Firebug est

'fbLogout non définie'

, mais il est clair qu'il est défini. Est-ce important de savoir où je le définis? Actuellement, tout le javascript/jquery est en tête dans les balises de script. Bien que j'aie essayé de le déplacer vers le bas dans la page et n'ai pas eu de la chance non plus.

Répondre

3

Il s'avère que j'étais trop penser cela. FB fait beaucoup de travail pour vous. J'appelais les fonctions sur les événements de connexion et de déconnexion, mais avec la fonction FB.Connect.isUserConnected, FB garde un œil sur cela pour vous.

Mon code est exactement le même, sauf 1) Je n'ai plus d'événements onclick dans le fb: bouton de connexion 2) la fonction FB.Connect.isUserConnected ressemble maintenant à ce

 
FB.Connect.isUserConnected(update_user_box, fbLogout); 
+0

+1 pour pour prendre le temps d'afficher votre propre réponse. – zombat

+0

Je seconde. Avoir une réponse aide. –

Questions connexes