我正在使用它,通过 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/