2012-07-27 73 views
0

我试图建立一个系统的用户自动登录到我的网站,如果他们在另一个选项卡已经连接到Facebook和我从Zend框架此错误消息:方法getUserFromAvailableData不存在

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

我已经从https://github.com/facebook/facebook-php-sdk下载了Facebook php API并将其上传到我的服务器,并且该方法确实存在,位于base-facebook.php文件的第463行。这是我打电话给API的地方,如果它有任何区别的话。

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

什么可能导致此错误?我在做什么错了吗?

+0

你是否包含base-facebook.php? – Matt 2012-07-27 14:46:39

+0

facebook.php包含base-facebook。我实例化了一个facebook对象,它可以工作。在base-facebook.php里面,它试图用'$ this-> getUserFromAvailableData'来调用方法。我错过了,因为他们在网站上显示的方法是静态的。 – jaimerump 2012-07-27 14:53:49

回答

0

在getUser函数的开发者网站页面上,它们显示的方法是静态的。他们用头Facebook::getUser(),但如果你看看在基础facebook.php的源代码,你会发现这条线:

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

即使他们表现出来的文档是静态的,或者至少使它看起来像是这样,你可以在这里看到它实际上依赖于那里是一个Facebook实例,并且它在我的代码中找不到方法的原因是我没有创建一个。一旦我创建了一个Facebook实例,错误消息就消失了。