如何在codeigniter中使用facebook登录

时间:2016-12-27 07:35:08

标签: facebook codeigniter controller facebook-php-sdk

我想在Facebook上创建一个登录页面到我的网站。我已经阅读了http://www.codexworld.com/facebook-login-codeigniter/的教程。为什么还是不行?请帮忙。

这是我的控制器:

<?php defined('BASEPATH') OR exit('No direct script access allowed');
class User_Authentication extends CI_Controller
{
    function __construct() {
        parent::__construct();
        // Load user model
        $this->load->model('auth/user_model');
        $this->load->library('facebook');
    }
    public function index(){
        // Include the facebook api php libraries
        include_once APPPATH."libraries/facebook.php";

        // Facebook API Configuration
        $appId = '150371602457568';
        $appSecret = '756e81e1cbd13d93536406e55550f0ff';
        //$redirectUrl = base_url() . 'user_authentication/';
        $redirectUrl = 'http://localhost/clinic/user_authentication/';
        $fbPermissions = 'email';

        //Call Facebook API
        $facebook = new Facebook(array(
          'appId'  => $appId,
          'secret' => $appSecret

        ));
        $fbuser = $facebook->getUser();

        if ($fbuser) {
            $userProfile = $facebook->api('/me?fields=id,first_name,last_name,email,gender,locale,picture');
            // Preparing data for database insertion
            $userData['oauth_provider'] = 'facebook';
            $userData['oauth_uid'] = $userProfile['id'];
            $userData['first_name'] = $userProfile['first_name'];
            $userData['last_name'] = $userProfile['last_name'];
            $userData['email'] = $userProfile['email'];
            $userData['gender'] = $userProfile['gender'];
            $userData['locale'] = $userProfile['locale'];
            $userData['profile_url'] = 'https://www.facebook.com/'.$userProfile['id'];
            $userData['picture_url'] = $userProfile['picture']['data']['url'];
            // Insert or update user data
            $userID = $this->user->checkUser($userData);
            if(!empty($userID)){
                $data['userData'] = $userData;
                $this->session->set_userdata('userData',$userData);
            } else {
               $data['userData'] = array();
            }
        } else {
            $fbuser = '';
            $data['authUrl'] = $facebook->getLoginUrl(array('redirect_uri'=>$redirectUrl,'scope'=>$fbPermissions));
        }
        $this->load->view('user_authentication/index',$data);
    }

    public function logout() {
        $this->session->unset_userdata('userData');
        $this->session->sess_destroy();
        redirect('/user_authentication');
    }
}

这就是我想要执行它的地方:

div class="modal fade" id="choose" role="dialog">
  <div class="modal-dialog"> 
    <div class="modal-content">
      <div class="modal-header  btn-success">
               <h3 class="modal-title">Connect with</h3>
      </div><!-- modal-header -->
        <div class="modal-body">
          <div class="connectwith">
          <form class="form-horizontal" id="payment">
              <button onclick="<?php echo base_url()?>User_authentication/index" class="btn btn-primary"> Continue with Facebook </button>

          </form><!-- form-horizontal -->
          </div>
        </div><!-- modal-body -->
    </div><!-- modal-content -->
  </div><!-- modal-dialog -->
</div><!-- choose -->

它没有显示任何错误,但我想要的是当我触发名为connect to facebook的模态按钮时,它将运行我的控制器User_Authentication以使用facebook库。它没有做任何事情,也只是刷新。请帮忙 。谢谢

0 个答案:

没有答案