我正在尝试设置一个系统,如果用户已经在另一个选项卡中连接到facebook,则可以自动登录到我的网站,我从Zend Framework收到了以下错误消息:
Message: Method "getUserFromAvailableData" does not exist and was not trapped in __call()
我已经从下载了Facebook php APIhttps://github.com/facebook/facebook-php-sdk并将其上传到我的服务器上,该方法确实存在,位于base-facebook.php文件的第463行。这里是我调用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实例,错误消息就消失了。