PHP SDK 3.1.1 getUser () gibt manchmal 0 zurück

9

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 ???

    
Phoxer Roberto Baglieri 29.08.2011, 06:32
quelle

5 Antworten

1

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).

    
Phillip 29.08.2011 06:36
quelle
1

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%     
anujkk 11.11.2011 08:34
quelle
1

Sie geben einfach den PHP Header in

ein %Vor%     
Gutonteen 09.07.2012 11:20
quelle
0

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 ..:)

    
kanchan 13.01.2012 14:15
quelle
0

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.

    
Deepak Salian 30.09.2011 07:51
quelle