javascript - 在 codeigniter 中使用 facebook 登录

标签 javascript php jquery facebook codeigniter

我正在使用它,通过 Facebook 登录,但我没有收到用户响应,这里是链接

http://demos.idiotminds.com/link.php?link=https://www.box.com/s/108pspt0o0oj0fpr6ghf

我也为 codeigniter 尝试过这个解决方案

  protected function getCode() {
    $server_info = array_merge($_GET, $_POST, $_COOKIE);

    if (isset($server_info['code'])) {
        if ($this->state !== null &&
                isset($server_info['state']) &&
                $this->state === $server_info['state']) {

            // CSRF state has done its job, so clear it
            $this->state = null;
            $this->clearPersistentData('state');
            return $server_info['code'];
        } else {
            self::errorLog('CSRF state token does not match one provided.');
            return false;
        }
    }

    return false;
}

用于使用 Facebook 登录,但我没有从这个 $user = $facebook->getUser(); 获得值,即使我已经登录到 Facebook,它也返回 0 值。 我为此使用了很多代码但没有成功,请帮助我。 我很沮丧

最佳答案

为 Facebook 下载 PHP SDK

现在在 application\libarires "facebook"中创建一个文件夹

把PHP SDK的“src”文件夹放在

现在在该文件夹中创建一个包含 FacebookApp.php 的文件并放入此代码

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

require_once( APPPATH . 'libraries/facebook/src/facebook.php' );

class FacebookApp extends Facebook {

var $ci;

var $facebook;

var $scope;

public function __construct() {
  $this->ci =& get_instance();

  $this->facebook = new Facebook(array('appId'  => $this->ci->config-       >item('app_id'),'secret' => $this->ci->config->item('app_secret'), 'cookie' => true));

$this->scope = 'public_profile';
}

public function login_url() {
  $params = array('scope' => $this->scope);
  return $this->facebook->getLoginUrl($params);
}

public function logout_url() {
  return $this->facebook->getLogoutUrl(array('next' => base_url() .'logout'));
}

public function getFbObj(){
  return $this->facebook;
}

public function get_user() {
  $data = array();
  $data['fb_user'] = $this->facebook->getUser();
  if ($data['fb_user']) {
    try {
      $data['fb_user_profile'] = $this->facebook->api('/me');
      return $data;
    } catch (FacebookApiException $e) {
      $this->facebook->destroySession();
      $fb_login_url = $this->facebook->getLoginUrl(array('scope' => $this->scope));
      redirect($fb_login_url, 'refresh'); 
    }
  }
}

现在在 Controller 中加载这个库 $this->load->library('facebook/FacebookApp)

在方法中

$obj_fb = new FacebookApp(); $fb_user_data = $obj_fb->get_user(); $data['fb_login_url'] = $obj_fb->login_url();

将fb_login_url 放在登录按钮的href 中,现在登录就完成了。

希望对你有帮助。

关于javascript - 在 codeigniter 中使用 facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27201699/

相关文章:

javascript - 从pdf文件中读取注释

javascript - html 5 数据属性中是否允许使用尖括号?如果是这样,如何用 jQuery 找到它?

javascript - 在 jquery 中检测滚动并更改操作

php - 上传文件,并将文件名插入数据库

jquery - 仅在层次结构的特定深度上嵌套 <li> 事件

javascript - EmberJS 异步的过渡到firstObject hasMany

javascript - 在 MongoDB 中更新整个文档(所有字段)的最快方法是什么?

javascript - 我们如何使用 dc.js 和传单 map 通过 map 悬停来过滤图表

javascript - 想知道与 0 使用 OR 位运算的原因

php - 需要一个关联数组,但具有与 NuSoap 相同的键