Metodo GetUserFromAvailebledAtata non esiste
-
12-12-2019 - |
Domanda
Sto cercando di configurare un sistema per accedere automaticamente un utente nel mio sito se sono già collegati a Facebook in un'altra scheda e ho ricevuto questo messaggio di errore da Zend Framework:
Message: Method "getUserFromAvailableData" does not exist and was not trapped in __call()
.
Ho già scaricato l'API PHP Facebook da https://github.com/facebook/Facebook-PHP-SDK e lo ha caricato sul mio server e il metodo esiste effettivamente, on line 463 del file di base-facebook.php.Ecco dove sto chiamando l'API, se fa alcuna differenza.
require_once(BASE_PATH . "/library/facebook-php/src/facebook.php");
$fbid = Facebook::getUser();
.
Cosa potrebbe causare questo errore?Sto facendo qualcosa di sbagliato sulla mia fine?
Soluzione
Nella pagina del sito dello sviluppatore per la funzione GetUser, qui , mostrano il metodo come statico.Usano l'intestazione Facebook::getUser()
, ma se guardi il codice sorgente in Base-Facebook.php troverai questa riga:
return $this->user = $this->getUserFromAvailableData();
.
Anche se lo mostrano come statici nella documentazione, o almeno rendono sembrare che lo sia, puoi vedere qui che in realtà dipende da lì un'istanza di Facebook, e che il motivo per cui non potevaTrova il metodo nel mio codice è che non ne ho creato uno.Non appena ho creato un'istanza di Facebook, il messaggio di errore è scomparso.