Problème affichage XFBML avec pyfacebook
-
29-09-2019 - |
Question
J'utilise pyfacebook sur mon application, mais je vais avoir des problèmes pour afficher XFBML Par exemple, je dois utiliser les iframes à afficher comme des boutons ou comme des boîtes.
Ce qui est étrange: 1) Sur la page de connexion les affiche correctement, je viens de problèmes sur d'autres pages (une fois connecté)
2) L'utilisation de la partie I est FB.init
<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("{{ apikey }}", '/static/xd_receiver.html');
considérant que les docs facebook les arguments sont les suivants:
FB.init({
appId : 'YOUR APP ID',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
3) Lorsque je change le FB.init à celui fb officiel, l'application ne fonctionne plus. (Par exemple, je ne peux pas en utilisant cette fermeture de session
<a href="#" onclick="javascript:FB.Connect.logoutAndRedirect('/')">Logout</a>
Je suis relativement nouveau à des choses FB, donc je suis probablement mélanger les choses, mais je veux juste afficher FBML correct sur mon application sans modifier trop du côté du serveur.
La solution
Je pense que vous confondez ancienne API javascript Facebook avec leur nouvelle API javascript .
Comme mentionné sur la nouvelle page de l'API, l'utiliser pour faire init:
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({appId: 'your app id', status: true, cookie: true,
xfbml: true});
};
(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>
Pour la fermeture de session, vous voulez quelque chose comme ceci:
<a href="#" onclick="javascript:FB.logout(function(response) {window.location.href = '/';})">Logout</a>