如何在Yii中配置PHP SDK 4

3

我是FB开发的新手,所以我下载了PHP SDK 4并将其解压到名为facebook-sdk的组件中,然后在main.php中进行了配置,如下:

'import'=>array(
    'application.models.*',
    'application.components.*',
    'application.components.facebook-sdk.*',

然后在我的站点控制器中,我想要调用:
$session = new FacebookSession($_POST['accessToken']); 

但即使我拥有访问令牌,它仍然返回:
include(FacebookSession.php): failed to open stream: No such file or directory 

在 Yii 中配置 PHP-SDK 4 的位置


你确定在/components/facebook-sdk/路径下有一个名为FacebookSession的文件吗?这应该是区分大小写的。 - Developerium
我把所有文件都粘贴到了/components/facebook-sdk/目录下。 - user3868334
文件权限设置正确吗?PHP/Web服务器进程可以读取它吗? - Manquer
亚曼克权限为777。 - user3868334
你需要在protected/components/facebook-sdk/FacebookSession.php文件中。 - Chux
我检查了FacebookSession.php文件,它在那里。 - user3868334
1个回答

0

我曾经遇到过和你一样的问题,调试了好几个小时。最终,我发现在类名前面漏掉了命名空间 "Facebook\"。 这是我的代码,它可以正常工作:

        require_once 'facebook-php-sdk/autoload.php';       
        require_once 'facebook-php-sdk/src/Facebook/FacebookSession.php';
        require_once 'facebook-php-sdk/src/Facebook/FacebookRequest.php';
        require_once 'facebook-php-sdk/src/Facebook/GraphObject.php';
        require_once 'facebook-php-sdk/src/Facebook/GraphUser.php';
        require_once 'facebook-php-sdk/src/Facebook/FacebookSDKException.php';
        require_once 'facebook-php-sdk/src/Facebook/FacebookRequestException.php';

        Facebook\FacebookSession::setDefaultApplication(FACEBOOK_APP_ID, FACEBOOK_APP_SECRET);
        $helper = new Facebook\FacebookRedirectLoginHelper('http://mywebsite.com');
        try {
            $session = $helper->getSessionFromRedirect();                   
        } catch(Facebook\FacebookRequestException $ex) {
            // When Facebook returns an error
        } catch(\Exception $ex) {
            // When validation fails or other local issues
        }

        if ( isset($session) ) {
            // Logged in
            $me = (new Facebook\FacebookRequest($session, 'GET', '/me'))->execute()->getGraphObject(GraphUser::className());
            var_dump($me);
        }
        else {
             $loginUrl = $helper->getLoginUrl();
             header("Location: ".$loginUrl); exit;
        }

谈论 PHP SDK 4 不是 3。 - RahulG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接