J'essaie de vérifier si un utilisateur est connecté avec mon application, mais je reçois un "
FB.getLoginStatus()
appelé avant d'appelerFB.init()
.
"Dans la console. Le setSize semble fonctionner (bien que pas tout à fait 1710 de hauteur, mais définitivement autour de 1500), donc je ne comprends pas pourquoi le getLoginStatus()
donne l'erreur.
J'ai également vérifié avec l'appID (supprimé ci-dessous) et c'est certainement correct. Le script est inclus à droite en dessous de mon et div
window.fbAsyncInit = function() { FB.init({ appId : 'APPID', // App ID status : true, // check login status cookie : true, // enable cookies to allow the server to access the session oauth : true, // enable OAuth 2.0 xfbml : true // parse XFBML }); FB.Canvas.setSize({width: 520, height: 1710}); FB.Canvas.setAutoResize(100); FB.getLoginStatus(function(response) { if (response.authResponse) { // logged in and connected user, someone you know alert("?"); } else { // no user session available, someone you dont know alert("asd"); } }); };
Vous devez charger l'api de façon asynchrone. Essayez de supprimer votre <script src="connect.facebook.net/en_US/all.js"></script>
et de mettre à jour votre JS vers:
<div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : 'YOUR_APP_ID', // App ID channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File status : true, // check login status cookie : true, // enable cookies to allow the server to access the session oauth : true, // enable OAuth 2.0 xfbml : true // parse XFBML }); // // All your canvas and getLogin stuff here // }; // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/en_US/all.js"; d.getElementsByTagName('head')[0].appendChild(js); }(document)); </script>
Oh, vérifiez la documentation !
Cette erreur se produira également si vous ne fournissez pas d'appId à FB.init. Exemple:
FB.init({ appId: '' , channelUrl: '//domain/channel.html' , status: true , cookie: true });
Aura pour résultat:
FB.getLoginStatus () appelé avant d'appeler FB.init ().