Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将Facebook连接添加到CodeIgniter网站_Php_Javascript_Codeigniter_Facebook - Fatal编程技术网

Php 将Facebook连接添加到CodeIgniter网站

Php 将Facebook连接添加到CodeIgniter网站,php,javascript,codeigniter,facebook,Php,Javascript,Codeigniter,Facebook,我在尝试将我的网站连接到Facebook时遇到问题。我想让它做的是允许用户通过将他们连接到Facebook来增加他们的帐户(我不需要人们能够登录Facebook,我使用的是OpenID)。我的网站运行在CodeIgniter框架中 我要做的是移除所有我尝试过的东西,然后带你走过我的台阶,直到它停止工作 步骤1:设置JavaScript SDK和XFBML 首先,我将对FBML规范的引用添加到我的标记中: <html xmlns="http://www.w3.org/1999/xhtml"

我在尝试将我的网站连接到Facebook时遇到问题。我想让它做的是允许用户通过将他们连接到Facebook来增加他们的帐户(我不需要人们能够登录Facebook,我使用的是OpenID)。我的网站运行在CodeIgniter框架中

我要做的是移除所有我尝试过的东西,然后带你走过我的台阶,直到它停止工作

步骤1:设置JavaScript SDK和XFBML

首先,我将对FBML规范的引用添加到我的
标记中:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xml:lang="en" lang="en">
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
    FB.init({
        apiKey  : '<?php echo $this->config->item('facebook_api_key'); ?>',
        status : true,
        cookie : true,
        xfbml  : true
    });

</script>
现在,我可以将XFBML实体添加到我的页面中,如
,它的工作原理与预期的一样。我点击它,它会弹出一个框,询问我是否允许我的网站访问我的Facebook个人资料。我说是的,然后如果我在Facebook上检查我的应用程序设置,我可以看到我的网站已经被添加

所以这一步很好

步骤2:设置PHP库

好的,现在我需要添加PHP库。因此,在谷歌上快速搜索“codeigniter facebook库”就可以发现。我下载文件,把它们放在正确的地方,然后开始加载库

现在问题出现了。我将以下代码(取自库中给出的示例)添加到我的控制器构造函数中,以便它发生在每个页面上:

$this->load->library('facebook_connect');
$this->data['fb_user'] = $this->facebook_connect->user;
$this->data['fb_userid'] = $this->facebook_connect->user_id;
但是如果我打印($this->data['fb_user'])我什么也得不到。曾经无论我是否登录facebook、注销、登录并将我的网站添加到我的个人资料中,等等。用户和用户id从未设置。但是我没有发现任何错误

据我所知,应该设置这些值,以便我知道浏览我网站的人是否登录了他们的facebook帐户。如果是,我可以看看他们是否允许我的申请。如果他们允许,我可以让他们从我的网站断开连接,如果不允许,我可以让他们连接。但是如果不填充这些变量,我什么也做不了

我试着在图书馆的资料来源里四处寻找,但我真的无法理解它。我希望这个问题的实际解决方案不会涉及对图书馆进行黑客攻击。我希望特定于CodeIgniter的库能够工作

有什么想法吗


非常感谢。:)

由Github上主持的Danny Tran试一试。效果非常好,安装起来也非常容易。

您是否将xd_receiver文件添加到了公共目录中


很可能这会导致问题,bcoz xd_接收器会切断你的应用程序与facebook之间的通道。

这篇文章可能对你有用

您正在加载新的()和旧的()JS SDK。删除对旧版本的引用。新的JS SDK将设置一个签名cookie,可以使用新的PHP SDK(安全地)读取该cookie:。jssdk的这个auth示例可能也会有所帮助:

这些链接可能会解决您在facebook上遇到的任何编程问题


Facebook有一个官方php sdk,在codeigniter中运行良好。。。
$this->load->library('facebook_connect');
$this->data['fb_user'] = $this->facebook_connect->user;
$this->data['fb_userid'] = $this->facebook_connect->user_id;