如何使用CodeIgniter在我的网站上将facebook登录集成到localhost?

时间:2015-12-19 18:34:53

标签: php facebook codeigniter

我正在尝试使用CodeIgniter在我的网站上将facebook登录集成到localhost上。我在控制器costprices_path中创建了一个fb_login函数,其中还定义了不同的函数。问题是,当我从user.php调用fb_login函数时,它不起作用,在login_view.php在单独的控制器中定义并调用时,其功能随后起作用......

以下是代码:

user.php(controller)

fb_login

但这适用于fblogin.php(控制器)

public function fb_login(){

        $this->load->library('facebook');                
        $user = $this->facebook->getUser();
        echo $user;
        if ($user) {
            try{
            $user_profile = $this->facebook->api('/me?locale=en_US&fields=name,email');
            }
            catch (FacebookApiException $e){
                $user = null;
            }
        }
        else{
            $this->facebook->destroySession();
        }

        if ($user) {
            $logout_url = site_url('user/logout');
            $user_data =array(
                'user_id' => $user_profile['id'],
                'username' => $user_profile['name'],
                'logged_in' => true
            );

            $this->session->set_userdata($user_data);
            $this->load->view('profile_view');//,$logout_url,$user_profile);
        }
        else{
            $login_url = $this->facebook->getLoginUrl(array(
                'redirect_uri' => site_url('user/login_page'),
                'scope' => 'email'
                ));

            $this->load->view('login_view',$login_url);    
        }

}

2 个答案:

答案 0 :(得分:0)

Facebook Developer中,将“网站网址”设置为您的本地地址“http://localhost/[yourSiteName]”。

Facebook不会重定向回您的服务器。 FB JavaScript插件可以在浏览器的上下文中运行,它知道“localhost”指向的位置。

完成后不要忘记将其更改回您的域名。

答案 1 :(得分:0)

我认为这与您正在使用的网址/路由有关,因为它来自一个控制器,而不是另一个控制器。请确保您正在调用正确的网址/controller/method,而不仅仅是将其称为/method,这样会使用相应的控制器方法。