Php 将Facebook连接添加到CodeIgniter网站
我在尝试将我的网站连接到Facebook时遇到问题。我想让它做的是允许用户通过将他们连接到Facebook来增加他们的帐户(我不需要人们能够登录Facebook,我使用的是OpenID)。我的网站运行在CodeIgniter框架中 我要做的是移除所有我尝试过的东西,然后带你走过我的台阶,直到它停止工作 步骤1:设置JavaScript SDK和XFBML 首先,我将对FBML规范的引用添加到我的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"
标记中:
<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;