J'ai un site Web localhost
et un script avec FB.logout()
. Après quelques actions, il ne parvient pas à me déconnecter et je vois le message d'erreur suivant dans la console:
Refused to display 'https://www.facebook.com/home.php' in a frame because it set 'X-Frame- Options' to 'DENY'.
J'ai cherché dans tout StackOverflow et je n'ai trouvé aucune solution qui fonctionne. L'inspecteur de réseau affiche la requête annulée près de home.php.
Je comprends donc que le script essaie de charger la page d’accueil de Facebook dans un cadre, mais il ne le peut pas parce que cela est interdit. Alors, comment puis-je résoudre ce problème? Pourquoi logout()
ne fonctionne-t-il pas pour moi?
Mon code
// Facebook Basic Example
window.fbAsyncInit = function() {
FB.init({
appId : '579651098766258',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
FB.Event.subscribe('auth.authResponseChange', function(response) {
if (response.status === 'connected') {
testAPI();
} else if (response.status === 'not_authorized') {
FB.login();
} else {
FB.login();
}
});
};
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
function testAPI() {
FB.api('/me', function(res) {
console.log(res);
setTimeout(function(){
FB.logout(); // <-- ERROR
}, 2000);
});
}
Cette solution a fonctionné pour moi:
Aussi, j’ai fait une vidéo sur youtube pour résoudre ce problème: https://www.youtube.com/watch?v=7CNpLgwa0-c
Je ne sais pas à quoi ressemble votre code HTML, mais pour moi, cela a fonctionné avec mon bouton de déconnexion:
onclick="javascript:FB.logout(function() { window.location.reload() }); return false;"
J'espère que cela va aider quelqu'un, au moins cela résout mon problème.
Mise à jour pour 2018
Dans le tableau de bord de l'application, sous le produit de connexion Facebook, cliquez sur Démarrage rapide et suivez les instructions. L'appel d'API de déconnexion devrait commencer à fonctionner!
Remarque: J'ai sélectionné WWW et saisi http://localhost:5757/
dans l'URL du site.
J'ai trouvé qu'avec www . Example.com j'obtiens cette erreur et sans le www (example.com), il n'y a pas d'erreur ...