Вопрос

Я пытаюсь настроить систему для автоматического входа пользователя на мой сайт, если он уже подключен к 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, сообщение об ошибке исчезло.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top