J'essaie d'utiliser la nouvelle API Facebook Graph sur mon site Web. Voici ce que j'ai:
Quelque part sur la page:
<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>
Juste après le tag:
<div id="fb-root">
</div>
<script type="text/javascript">
window.fbAsyncInit = function () {
FB.init({ appId: '<%= ConfigurationManager.AppSettings["FBAppId"] %>', status: true, cookie: true, xfbml: true });
/* All the events registered */
FB.Event.subscribe('auth.login', function (response) {
// do something with response
alert("login success");
});
FB.Event.subscribe('auth.logout', function (response) {
// do something with response
alert("logout success");
});
FB.getLoginStatus(function (response) {
if (response.session) {
// logged in and connected user, someone you know
alert("login success");
}
});
};
(function () {
var e = document.createElement('script');
e.type = 'text/javascript';
e.src = document.location.protocol +
'//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
} ());
</script>
mais quand je clique sur le bouton de connexion généré, rien ne se passe.
De plus, je reçois
FB.getLoginStatus() called before calling FB.init().
dans la console Firebug.
Des idées?
Je ne peux pas le croire, je faisais référence à une clé non existante dans le Web.config donc FB.init échouait silencieusement.
Cela fonctionne comme prévu maintenant.
Pour être plus clair Je ne passais pas l'appId à FB.init, une fois que je l'ai fait, cela a fonctionné.
Eu le même problème, voici la solution qui a fonctionné pour moi. Mettez simplement ce qui suit dans votre section de tête ou en d'autres termes, ajoutez le app_id à la source du facebook js.
<script src="//connect.facebook.net/en_US/all.js&appId=xxxxxxxxxxxxxxx" type="text/javascript"></script>
Dans mon cas, le problème a disparu après avoir désactivé la fonctionnalité XFBML (c'est-à-dire en définissant la clé xfbml
sur false
, en supprimant le fb:
espace de noms et #xfbml=1
fragment dans <script src="…">
). Heureusement que je n'en avais pas besoin de toute façon.
YMMV, il existe plusieurs autres raisons valables pour lesquelles ce message d'erreur peut apparaître.