Laravel FacebookSDK Bundle无法正常工作

时间:2013-04-14 01:17:38

标签: php laravel laravel-3

Mates,我正在Laravel编写一个包含游戏的facebook应用程序,我需要保存最终分数。 问题是,我需要获取用户ID(谁在播放')才能将获得的分数保存到数据库中。

我已经在Laravel的网站上安装了FacebookSDK捆绑包,但是当我尝试定义它时,我得到以下内容:

App Controller:

<?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('app@check', 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}

我无法让它发挥作用。 我已按照所有安装说明进行操作。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

这听起来好像捆绑尚未启动。

确保捆绑包列在application/bundles.php文件中,并设置为自动启动。

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

如果这不起作用,请尝试事先手动启动捆绑包。

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

如果您没有使用Artisan安装捆绑包,请记住捆绑包目录的名称应与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的数组。如果它不在那里,那么再次检查前两步以确保捆绑已经开始。