Das macht mich verrückt & gt; = (
$ facebook- & gt; getUser () funktioniert manchmal gut, gibt aber manchmal 0 zurück
Hier ist mein Code:
require 'fbapi/facebook.php';
$facebook = new Facebook(array(
'appId' => 'xxx',
'secret' => 'xxxxx',
));
$user = $facebook->getUser();
Die appId und secret sind die richtigen.
Was könnte der Grund sein, dass getUser manchmal 0 zurückgibt ???
Es ist mehr als wahrscheinlich, dass es etwas auf Facebook gibt (die Entwickler haben das schon vor einer Weile durchgespielt). Wenn $user
null oder 0 zurückgibt, leiten Sie sie einfach zur Login-URL um (die Sie haben sollten). Die Wahrscheinlichkeit, dass sie 0 zurückgibt, ist minimal (es sei denn, es liegt ein Bug an ihrem Ende vor oder es gibt mehr in Ihrem Code als das, was Sie gepostet haben).
Ich stieß auf ein ähnliches Problem. $ facebook- & gt; getUser () gab 0 zurück und manchmal gab es eine gültige Benutzer-ID zurück, wenn der Benutzer nicht angemeldet war, was zu einem Fatal Oauth-Fehler führte, als ich versuchte, Graph-API-Aufrufe zu machen. Ich habe dieses Problem endlich gelöst. Ich weiß nicht, ob es der richtige Weg ist, aber es funktioniert. Hier ist der Code:
%Vor%Ich habe eine einfache Lösung für dieses Problem gefunden. Dies passiert, wenn die facebook-Klasse keine Sitzungsvariable auf Ihrem Server setzen oder hinzufügen kann.
In meinem Code habe ich session_write_close () verwendet, bevor ich facebook-Klassen einschloss, wegen denen ich diesen Fehler bekommen habe. "CSRF-Status-Token stimmt nicht mit einem überein." ..
Ich habe dann session_write_close () am Ende des Codes verschoben und schließlich hat es funktioniert ..:)
Ich habe also mit dem gleichen Problem gekämpft, getUser()
hat immer 0 zurückgegeben. Hat überhaupt keinen Sinn ergeben. NginX-Fehlerprotokolle zeigten den folgenden Fehler an: "CSRF-Status-Token stimmt nicht mit einem bereitgestellten überein". Dann habe ich angefangen, das SDK zu debuggen und es auf getAccessTokenFromCode()
einzuschränken, das nicht in der Lage war, den richtigen Zugriff von den Facebook-Servern zu bekommen, was mit SSL-Zertifikaten zu tun hat.
Die Lösung auf dem unten genannten Link hat das Problem für mich gelöst.
Sie müssen möglicherweise auch die Datei 'fb_ca_chain_bundle.crt', die mit dem SDK mitgeliefert wird, in den Ordner kopieren, in dem sich Ihre Facebook-Klassendatei befindet. Ich habe es getan.
Ich hoffe, das macht Sinn.
Tags und Links php facebook-graph-api facebook-php-sdk facebook-iframe facebook-authentication