Ottos Antwort auf den Facebook-Beitrag scheint die offizielle Antwort auf diese Frage zu sein, verwendet jedoch direktes PHP anstelle des SDK und JS, um das Problem anstelle von PHP zu lösen. Wenn Sie PHP verwenden, um nach einer gültigen Sitzung zu suchen, benötigen Sie häufig eine PHP-Methode, um eine gültige Sitzung sicherzustellen, um fortzufahren.
Der folgende Code überprüft das me-Objekt mit der Diagramm-API. Wenn eine Ausnahme ausgelöst wird, wird * die aktuelle Facebook-Sitzung zerstört.
try{
$facebook->api('/me');
}
catch( FacebookApiException $e ){
$facebook->destroySession();
}
Dies erzwingt spätere Diagrammaufrufe, um eine neue Facebook-Sitzung zu instanziieren. Dadurch erhalten Sie zumindest Zugriff auf öffentliche Daten, sodass Sie Seiten rendern können, für die keine FB-Benutzerberechtigungen erforderlich sind:
$facebook->api('/userName');
Um wieder Zugriff auf die Benutzerberechtigung zu erhalten, muss sich der Benutzer bei Ihrer App anmelden (dies unterscheidet sich von der Anmeldung bei Facebook selbst). Sie können dies mit JS oder mit PHP tun:
$facebook->getLoginUrl();
* Beachten Sie, dass der Aufruf von destroySession () noch nicht in einer getaggten Version des PHP SDK enthalten ist. Verwenden Sie den Hauptzweig oder patchen Sie ihn ein.