无法从Facebook获得活动会话

问题描述:

Iam从下面的代码中一次又一次地获取登录URL。无法从Facebook获得活动会话

$this->fb = new Facebook(array(
     'appId' => $this->CI->config->item('facebook_app_id'), 
     'secret' => $this->CI->config->item('facebook_secret'), 
     'cookie' => true, 
    )); 

    if (!$this->fb->getSession()){ 

     echo $this->fb->getLoginUrl(); 
    } 

当我打印fb对象时,它会显示有效的api键和密钥。

我已经尝试从Firefox清理饼干后。我也尝试过注销,然后在Firefox的非常接下来的标签中从facebook账户重新登录。但结果是一样的。

上面的代码总是生成登录网址。

我还注意到,用户只需登录并返回。没有应用程序批准消息/屏幕显示。在facebook上我的应用程序的设置有任何问题吗?

有人能指导我做什么错,以及如何纠正。

在此先感谢

如果用户帐户允许您的应用程序连接你只会得到一个有效的会话。

你做到了吗?最简单的方法是使用Facebook提供的login button

+0

我可以使用自定义按钮吗? – Simpanoz 2011-03-03 13:55:04

我喜欢使用JS SDK和PHP SDK来获得额外的功能。

window.fbAsyncInit = function() { 
    FB.init({ 
     appId : '<?php echo $this->appId ?>', 
     session : <?php echo json_encode($this->fb->getSession()); ?>, // don't refetch the session when PHP already has it 
     status : true, // check login status 
     cookie : true, // enable cookies to allow the server to access the session 
     xfbml : true // parse XFBML 
    }); 

(function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/es_ES/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
    }()); 

然后,分配此功能的任何链接或按钮要打开登录和权限对话框(我使用jQuery,并与.fbConnect类的实例的链接):

$(".fbConnect").click(function() { 
      FB.login(function(response) { 
      window.location.reload(); 
      }, {perms: 'user_photos,user_photo_video_tags,email,publish_stream'}); 
     }); 

请注意,权限是在perms对象中指定的。重新加载时,会话应该可用于您的PHP SDK。

另外请确保您正在使用您指定到应用配置中的相同URL,否则它将无法工作。