2012-06-05 44 views
1

我正在尝试使用codeigniter连接Facebook。如果我连接拳头时间,那么我可以看到权限弹出,但在我授权许可后,我得到多个重定向循环错误。Facebook登录后在循环中使用codeigniter重定向

如果我已经登录和授权的网站,那么为什么它没有得到uid。

我给网站的URL在Facebook的:http://mysite.com/

和我的重定向uri为http://mysite.com/facebook/

我已经在我的库文件夹中添加这些文件。

library/fb_connect.php 
library/facebook/facebook.php 
library/facebook/base_facebook.php 
library/facebook/fb_ca_chain_bundel.crt 

facebook文件夹中的最后3个文件是facebook SDK文件。

这里是代码我fb_connect.php

<?php 
include(APPPATH.'libraries/facebook/facebook.php'); 

class Fb_connect { 


function connect(){ 


$facebook = new Facebook(array(
    'appId' => 'XXXXXXX', 
    'secret' => 'XXXXXXXXXXXXXX', 
    'cookie' => true, 
)); 

    //Get User ID 
    $user=$facebook->getUser(); 

    if(!$user){ 
    $loginUrl=$facebook->getLoginUrl(array(
    'scope'   => 'email,publish_stream,user_birthday,user_location', 
    'redirect_uri' => 'http://localhost/beta/facebook/', 
    'display'=> 'popup' 
    )); 

    redirect($loginUrl')"; 
    exit(); 


} else { 
$user_profile = $facebook->api('/me'); 

print_r($user_profile); 

} 
?> 

这里是我的控制器代码:

function facebook(){ 

    $this->load->library('fb_connect'); 
    $user_data=$this->fb_connect->connect(); 

} 

回答

0

有几件事情;

1.You说: “我的重定向uri为http://mysite.com/facebook/” - 但在你的代码:

'redirect_uri' => 'http://localhost/beta/facebook/', 

应该是:

'redirect_uri' => 'http://mysite.com/facebook/', 

2.You说:“我有给网站的网址中Facebook:http://mysite.com/“ - 您需要在您的Facebook API中专门设置返回网址 - 也应该是”http://mysite.com/facebook“

3.您说您的重定向是”http:// mysit e.com/facebook/“ - 您是否将此设置为路线?因为通常它应该是 “http://mysite.com/mycontroller/facebook/”

4.You有一个错字(如果这是一个复制粘贴+):

redirect($loginUrl')"; 

应该

redirect($loginUrl); 
+0

@Theshift ..首先感谢您的回答。关于错字,这些只是错误,因为我修改了一些代码以使读者更容易。所以我改变了重定向url,api和密钥,原始代码没有错字。因此第1和第4点不存在。我试过你第二点,但同样的重定向。并且你的第四点的答案是肯定的我设置路线。 http://site.com/auth/facebook至site.com/facebook。 – Emmul

+0

只需确认您在活网站上尝试此操作而不是“本地主机”? – Laurence