2013-03-30 7 views
5
geklickt

ich Facebook mit meiner Website zu integrieren und ich habe einen Logout-Button, deren URL genommen von hinzugefügt:facebook getLogoutUrl gibt eine URL mit access_token = 0, wenn Umleitungen Book Benutzer-Homepage

$facebook->getLogoutUrl(array('next' => 'http://mydomain.com/logout.php')); 

Das Problem ist, dass logout.php nie aufgerufen wird. Stattdessen wird beim Klicken auf die Schaltfläche Abmelden auf die Facebook-Startseite des angemeldeten Benutzers umgeleitet. Es protokolliert den Benutzer nicht von Facebook und ruft meine next URL nicht auf.

bemerkte ich, dass die von getLogoutURL() generierte URL wie folgt aussieht:

https://www.facebook.com/logout.php?next=http://mydomain.com/logout.php&access_token=0 

Hinweis gibt eine ist access_token = 0. Sollte dieser Wert nicht Null sein? Das ist die einzige Sache, die ich mir vorstellen kann, die das Problem verursachen könnte.

Ich habe die URL meiner FB-App bereits auf http://mydomain.com eingestellt. Beim lokalen Testen habe ich auch meine hosts Datei bearbeitet. Ich habe auch viel gegoogelt und ich habe keine Lösung gefunden. Der einzige, der funktionierte, war ein onclick zu meinem Logout-Button mit FB.logout() hinzuzufügen. Aber ich müsste PHP verwenden.

Irgendwelche Ideen, warum die Logout-URL nicht funktioniert?

Antwort

5

Okay, habe ich dieses Problem gelöst durch meine eigene Abmelde URL Erstellen und Hinzufügen eines Zugriffstoken

$logoutUrl = 'https://www.facebook.com/logout.php?next=http://mydomain.com/logout.php&access_token=' . $facebook->getAccessToken(); 
+0

Ich lief gerade in genau dieses Problem, mit dem Access_Token auch 0 ist. Dein Fix funktioniert auch für mich, aber es fühlt sich an wie ein Bandaid, anstatt das Problem zu lösen, warum der Access Token 0 ist. Aber ich würde Geld dafür ausgeben, dass es ein FB-Problem ist und nichts in unseren Code-Basen. –

+0

Ich konnte keine Dokumentation diesbezüglich finden. Ist es ein Hack oder Original – Tibin

1

Ich hatte das gleiche Problem auch (access_token = 0), aber dann merkte ich, dass ich klare Facebook-Cookies vor dem Aufruf von getLogoutURL(). Wenn Sie das getLogoutURL() - Ergebnis zuerst erhalten, sollte access_token nicht null sein.

4

Ich hoffe, Sie haben eine Lösung gefunden! Falls nicht, versuchen Sie es mit dem folgenden Code. Es hat für mich funktioniert!

$facebook->getLogoutUrl(array('next' =>'http://example.com/logout.php', 'access_token'=>$facebook->getAccessToken()));` 

Wenn Sie die offizielle Dokumentation überprüfen Sie es nichts über die Konfiguration der Zugriffstoken Option im Parameter-Array sehen, sagt aber es funktioniert wirklich! Viel Glück!!

+0

das hat funktioniert, danke! –

+0

Das hat auch für mich funktioniert. –

+0

Ein bisschen spät, aber ich kann nicht der einzige sein, der nach einer Lösung sucht. Diese Methode meldet den Benutzer nicht nur von Ihrer Website, sondern auch von Facebook ab. Es ist wünschenswert, wenn Sie mit Benutzern, die Ihre Website verlassen wollen, schrauben wollen :) – DerpyNerd

1

Das Problem ist, dass Sie getAccessToken aufrufen müssen, bevor Sie nach der Abmelde-URL fragen.

Sie müssen es nicht intern als getLogoutURL-Parameter aufrufen. Rufen Sie es einfach eine Zeile vor:

$user = $facebook->getUser(); 
$access_token = $facebook->getAccessToken(); 
$logoutUrl = $facebook->getLogoutUrl();