2009-10-15 8 views
0

Je travaille sur une application Facebook Connect. J'ai le bouton Connect opérationnel et les utilisateurs peuvent s'authentifier avec succès via Facebook. Cependant, j'ai de la difficulté à afficher leur photo de profil et leur nom avec XFBML. Voici ce que je fais:L'API Facebook Connect ne remplit pas les données utilisateur lorsque l'option facebook-logo = "true" est utilisée

<script type="text/javascript"> 
function fb_login_handler() { 
    var userbox = document.getElementById("fb_userbox"); 

    userbox.innerHTML = 
     "<span>" 
     + "<fb:profile-pic uid=loggedinuser facebook-logo='true'></fb:profile-pic>" 
     + "Welcome, <fb:name uid=loggedinuser useyou='false'></fb:name>" 
     + "</span>"; 

    FB.XFBML.Host.parseDomTree(); 
} 
</script> 

... 

<div id="fb_userbox"> 
    <fb:login-button onlogin="fb_login_handler();" autologoutlink="1" length="long"></fb:login-button> 
</div> 

... 

<!-- Facebook Connect initialization --> 
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"> 
</script> 

<script type="text/javascript"> 
    FB.init("[MY_API_KEY]", "/xd_receiver.htm", 
      { "ifUserConnected" : fb_login_handler }); 
</script> 

Je peux vous connecter avec succès avec le bouton Connect et la fonction de rappel Javascript se fasse automatiquement, mais je finis juste avec ceci:

http://www.friedo.com/fbuserbox.png

Ainsi, ni l'image ni le nom ne sont remplis. La même chose se produit même si je code en dur mon ID de profil FB à la place de loggedinuser.

Mise à jour: Il semble (après déconner au hasard autour) que je peux le faire fonctionner si j'éteins l'attribut facebook-logo de la balise fb:profile-pic. Le définir sur false (ou le supprimer) provoque le rendu correct de la boîte utilisateur. Mais j'ai aussi besoin du logo Facebook pour travailler. :(

+1

Avez-vous essayé de voir si cela est spécifique au navigateur? –

+0

C'est un bon point, je ne l'ai pas encore essayé dans d'autres navigateurs. – friedo

Répondre

1

Le balisage exact que vous avez belles œuvres sous this test console. Etes-vous sûr que vous n'obtenez des erreurs JavaScript?

Aussi, pouvez-vous tester avec l'UID d'un utilisateur relativement ancien. Il semble être a bug with displaying pictures for new users Mon UID ne semble pas avoir ce problème, si vous voulez le tester avec le mien: 685184151

+0

Je rencontrais les mêmes problèmes avec la console de test quand je l'ai essayé il y a quelques jours. Je vais essayer encore et voir si quelque chose a changé - ou si j'ai manqué quelques détails dans mon état privé de sommeil. – friedo

+0

Il semble que ce soit une instance du bug que vous avez mentionné; après quelques jours pour que les choses se propagent, cela semble fonctionner correctement. – friedo

0

J'ai essayé ce code dans mon serveur, ça fonctionne parfaitement, je reçois mon nom et mon image avec le fb logo, je l'ai essayé dans IE8, Chrome 4.0, Safari 3.21 et Firefox 3.5, le tout avec succès

Vous devez ajouter ces balises, de sorte que les balises FBML fonctionnent dans IE, Safari et peut-être certaines versions des autres navigateurs.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml"> 

Je voulais coller tout le script pour que vous puissiez le voir, mais je suis nouveau sur ce site, donc je ne sais pas comment (l'étiquette de code ne fonctionne pas). Je n'ai apporté aucune modification à votre code, je viens d'ajouter les balises mentionnées ci-dessus avec les balises body et head.

+1

Sélectionnez un texte de code et cliquez sur le bouton "101010". Cela le met en forme de code. –

Questions connexes