2013-04-14 86 views
0

我正在编写Laravel的Facebook应用程序,它包含一个游戏,我需要保存最终的分数。 问题是,我需要获取用户标识(谁在玩游戏),以便将获得的分数保存到数据库中。Laravel FacebookSDK包无法正常工作

我已经安装了FacebookSDK捆绑对Laravel的网站,但是当我尝试去定义它,我得到如下:

应用程序控制器:

<?php 

class App_Controller extends Base_Controller { 

public $restful = true;  

public function get_check() 
{ 
    // Define FbkSDK 
    $facebook = IoC::resolve('facebook-sdk'); 
    // Get UserId 
    $uid = $facebook->getUser(); 

}  

public function get_game() 
{ 
    // Imprimo la pantalla del juego 
}  

} 

错误:

Unhandled Exception 
Message: 

Class facebook-sdk does not exist 

Location: 

/home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/ioc.php on line 155 

Stack Trace: 

#0 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/ioc.php(155): ReflectionClass->__construct('facebook-sdk') 
#1 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/ioc.php(118): Laravel\IoC::build('facebook-sdk', Array) 
#2 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/application/controllers/app.php(10): Laravel\IoC::resolve('facebook-sdk') 
#3 [internal function]: App_Controller->get_check() 
#4 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/controller.php(325): call_user_func_array(Array, Array) 
#5 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/controller.php(285): Laravel\Routing\Controller->response('check', Array) 
#6 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/controller.php(165): Laravel\Routing\Controller->execute('check', Array) 
#7 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/route.php(153): Laravel\Routing\Controller::call('[email protected]', Array) 
#8 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/routing/route.php(124): Laravel\Routing\Route->response() 
#9 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/laravel/laravel.php(167): Laravel\Routing\Route->call() 
#10 /home/pablo/htdocs/conamor/CUENTAS/AventuraCenter/pacman/public/index.php(34): require('/home/pablo/htd...') 
#11 {main} 

我无法让它工作。 我遵循所有安装说明。

有什么想法?

谢谢!

回答

2

这听起来像捆绑尚未开始。

确保该软件包已在您的application/bundles.php文件中列出并设置为自动启动。

return array(
    'facebook-sdk' => array('auto' => true) 
); 

如果这不起作用,然后尝试手动启动捆绑预先。

Bundle::start('facebook-sdk'); 

如果你还没有使用工匠安装包,然后记住包目录的名称应与application/bundles.php文件的密钥相对应。如果没有,则设置该包的location

return array(
    'facebook-sdk' => array('auto' => true, 'location' => 'facebook-sdk-path') 
); 

这个位置是相对于bundles目录。

最后,作为一种调试措施,您可以检查IoC容器注册表以确认(绑定启动后)facebook-sdk实例正在绑定。

die(var_dump(IoC::$registry)); 

您应该得到一个包含facebook-sdk的转储数组。如果它不在那里,那么再次检查前两个步骤以确保捆绑包已经启动。