Frage

Ich versuche, ein System einzurichten, um einen Benutzer automatisch auf meiner Website anzumelden, wenn er bereits in einem anderen Tab mit Facebook verbunden ist, und ich habe diese Fehlermeldung von Zend Framework erhalten:

Message: Method "getUserFromAvailableData" does not exist and was not trapped in __call() 

Ich habe die Facebook-PHP-API bereits heruntergeladen https://github.com/facebook/facebook-php-sdk und habe es auf meinen Server hochgeladen, und die Methode existiert tatsächlich in Zeile 463 der Datei base-facebook.php.Hier rufe ich die API auf, falls es einen Unterschied macht.

require_once(BASE_PATH . "/library/facebook-php/src/facebook.php");
$fbid = Facebook::getUser();

Was könnte diesen Fehler verursachen?Mache ich meinerseits etwas falsch?

War es hilfreich?

Lösung

Auf der Website-Seite des Entwicklers für die getUser-Funktion: Hier, zeigen sie die Methode als statisch an.Sie verwenden den Header Facebook::getUser(), aber wenn Sie sich den Quellcode in base-facebook.php ansehen, finden Sie diese Zeile:

return $this->user = $this->getUserFromAvailableData();

Auch wenn es in der Dokumentation als statisch angezeigt wird oder es zumindest so aussieht, können Sie hier sehen, dass es tatsächlich davon abhängt, dass zuerst eine Facebook-Instanz vorhanden ist, und dass der Grund dafür ist, dass die Methode nicht gefunden werden konnte In meinem Code steht, dass ich keinen erstellt habe.Sobald ich eine Facebook-Instanz erstellt habe, verschwand die Fehlermeldung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top