wake-up-neo.net

Facebook JS API kann sich nicht abmelden

Ich habe eine localhost-Website und ein Skript mit FB.logout(). Nach einigen Aktionen kann ich mich nicht abmelden. In der Konsole wird die nächste Fehlermeldung angezeigt:

Refused to display 'https://www.facebook.com/home.php' in a frame because it set 'X-Frame-  Options' to 'DENY'.

Ich habe alle StackOverflow durchsucht und keine funktionierende Lösung gefunden. Netzwerkinspektor zeigt abgebrochene Abfrage in der Nähe von home.php an.
Ich verstehe also, dass das Skript versucht, die Facebook-Startseite in einem Frame zu laden, dies aber nicht, weil es verboten ist. Wie kann ich das beheben? Warum funktioniert logout() nicht für mich?

Mein 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);
  });
}
24
Enthusiast

Diese Lösung hat für mich funktioniert:

  1. Gehen Sie in Ihrer Facebook-Anwendung zur Registerkarte Einstellungen und scrollen Sie in der Registerkarte Basis zu + Plattform hinzufügen
  2. Klicken Sie auf + Plattform hinzufügen und wählen Sie Website
  3. Fügen Sie Ihre URL Ihrer Website hinzu (für mich wurde dieselbe URL auf der Registerkarte "Erweitert" unter "Umleitungs-URIs" hinzugefügt).
  4. Änderungen speichern und erneut testen.

Außerdem habe ich ein Youtube-Video erstellt, um dieses Problem zu lösen: https://www.youtube.com/watch?v=7CNpLgwa0-c

enter image description here

34
SoldierCorp

Ich musste das Feld "App Domains" auf der Registerkarte "Einstellungen" im App-Steuerungsfeld von Facebook festlegen, damit es funktioniert: 

 enter image description here

8
vivanov

Ich bin mir nicht sicher, wie Ihr HTML-Code aussieht, aber für mich funktionierte dies bei meiner Abmelden-Schaltfläche:

onclick="javascript:FB.logout(function() { window.location.reload() }); return false;"

Ich hoffe, das hilft jemandem, zumindest wurde mein Problem dadurch behoben.

2
colin

Update bis zum 2. Mai 2019:

1) Das https wird jetzt erzwungen, daher müssen Sie https: // localhost verwenden. http ist nicht mehr verfügbar.

2) Sie müssen Ihren Localhost auf die Whitelist setzen, indem Sie zu Einstellungen> Basis> Plattform hinzufügen gehen und "Website" auswählen.

2
Jacky

Update für 2018

Klicken Sie im App Dashboard unter Facebook-Login auf Schnellstart und befolgen Sie die Anweisungen. Der Aufruf der Logout-API sollte jetzt funktionieren!

Hinweis: Ich habe WWW ausgewählt und http://localhost:5757/ in die Site-URL eingegeben.

1
Shane Davies

Ich habe festgestellt, dass ich mit www . Example.com diesen Fehler bekomme und ohne das www (example.com) kein Fehler auftritt ...

0
Milk Man