Метод getUserFromAvailableData не существует.
-
12-12-2019 - |
Вопрос
Я пытаюсь настроить систему для автоматического входа пользователя на мой сайт, если он уже подключен к Facebook на другой вкладке, и я получил это сообщение об ошибке от Zend Framework:
Message: Method "getUserFromAvailableData" does not exist and was not trapped in __call()
Я уже загрузил PHP-API Facebook с сайта https://github.com/facebook/facebook-php-sdk и загрузил его на свой сервер, и этот метод действительно существует в строке 463 файла base-facebook.php.Вот где я вызываю API, если это имеет какое-то значение.
require_once(BASE_PATH . "/library/facebook-php/src/facebook.php");
$fbid = Facebook::getUser();
Что может быть причиной этой ошибки?Я делаю что-то не так со своей стороны?
Решение
На странице сайта разработчика функции getUser: здесь, они показывают метод как статический.Они используют заголовок Facebook::getUser()
, но если вы посмотрите исходный код в base-facebook.php, вы обнаружите следующую строку:
return $this->user = $this->getUserFromAvailableData();
Несмотря на то, что в документации он показан как статический или, по крайней мере, выглядит так, здесь вы можете видеть, что он на самом деле зависит от того, был ли первый экземпляр Facebook, и что причина, по которой он не смог найти метод в моем коде то, что я его не создавал.Как только я создал экземпляр Facebook, сообщение об ошибке исчезло.