0

我在这里和网上搜索了我的问题,但我没有找到任何解决方案,这让我发疯,我不知道是什么问题。问题是,getUser() 函数总是返回 0。

这里是我的图书馆:

include(APPPATH.'libraries/facebook.php');

    class Fbconnect extends Facebook{

        public $user_id = null;
        public $user = null;

        function Fbconnect(){
            $ci =& get_instance();
            $ci->load->config('facebook',true);
            $config = $ci->config->item('facebook');
            parent::__construct($config);
            $this->user_id = $this->getUser();
            $me = null;
            if($this->user_id){
                try{
                    $me = $this->api('/me');
                    $this->user = $me;
                }catch(FacebookApiException $e){
                    error_log($e);
                }
            }
        }
    }

这是控制器

function facebookRequest(){
        $this->load->library('fbconnect');
        $data = array(
            'redirect_uri' => base_url().'home/handleFacebookRequest',
            'scope' => 'email'
        );

        redirect($this->fbconnect->getLoginUrl($data));
    }

    function handleFacebookRequest(){
        $this->load->library('fbconnect');
        if($this->fbconnect->user){
            echo '<pre>';
            print_r($this->fbconnect->user);

        }else{
            echo "Login operation faild, try again later";
        }
    }

我使用配置文件来存储 appId 和 secrect

$config = array(
    'appId' => 'xxxxxx',
    'secret' => 'xxxxxxxxxxxxxxxxxxxx',
    'cookie' => true
);
4

1 回答 1

1

在您的插件APPPATH.'libraries/facebook.php'中(我相信您是从 facebook 下载的)有一个函数errorLog($msg),该函数将错误记录在 php 错误日志(或 apache 错误日志中)如果您不想麻烦,请将其重新写入 CI 错误日志,你可以回显一下$msg,看看是否有任何错误。相应地调试。

如果您没有更改下载的核心文件中的任何内容,我敢打赌,您在 function makeRequest(args[..]) 中的 curl 请求需要CURLOPT_SSL_VERIFYPEER设置为 false,或者更确切地说是这一行: $opts[CURLOPT_SSL_VERIFYPEER] = false;需要添加

于 2013-06-04T10:08:09.020 回答