Ich benutze Facebook php-sdk in meiner iframe Facebook App, um den Benutzer-Login-Status zu erhalten. Direkt nachdem ich mich über den Link Konto abmelden mit Facebook abmelde, ist die Sitzung noch nicht zerstört. Ich muss ein paar Minuten warten, bis die alte Sitzung abläuft, dann bekommt meine App wieder den richtigen Login-Status.Facebook API - Sitzung existiert noch, nachdem Benutzer sich abgemeldet hat
Ich erwarte, dass Facebook sich selbst und die Sitzung tötet, wenn Benutzer abmeldet. Wie kann ich die Sitzung manuell beenden?
Hier ist mein Code:
$initParams = array(
'appId' => $conf['app_id'],
'secret' => $conf['secret_api_key'],
'cookie' => TRUE,
);
$fb = new Facebook($initParams);
$fb->getSession(); // will return a session object eventhough user signed out!
GELÖST:
$fb->api('/me')
Aufruf wird die Sitzung zerstören, wenn der Benutzer aus vorher angemeldet hat. Ich habe meinen Code wie folgt geändert:
if ($session)
{
try
{
$fbuid = $fb->getUser();
$me = $fb->api('/me');
}
catch(FacebookApiException $e){}
}
Wenn der API-Aufruf nicht erfolgreich ist, $session
wird auf NULL gesetzt werden. Sehr seltsames Verhalten, ich erkläre nicht alles, was hier vor sich geht, aber es hat mein Problem gelöst, dass das Restsitzungsobjekt nicht über die Methode getSession()
aktualisiert wurde.
Wenn die Logout URL-Link ist korrekt erstellt es sollte kein Problem mit Ihrem Code .. Können Sie uns Ihre Front-End-Seite zeigen? – ifaour
Ich denke nicht, dass es ein merkwürdiges Verhalten ist, wie es deutlich in den Kommentaren [hier] (https://github.com/facebook/php-sdk/blob/master/examples/example.php) steht. _Wir wissen nicht ob es ist immer noch gültig, bis wir einen API-Aufruf mit der Sitzung machen. _ – ifaour
in der Tat, meine schlechte, die Kommentare des Beispielcodes nicht richtig gelesen haben. Vielen Dank für Ihre Eingabe – flochtililoch