2012-11-29 146 views
0

我已经阅读了这个线程的负载,但没有答案或给出的答案不适用于我。

我有以下代码要求授权我的Facebook应用程序,如果他们还没有授权它。一旦获得授权,它应该重定向到相同的页面,但这次它不应该要求授权。

代码询问了完美的用户授权...工程完全按照我想要的,但是当应用程序重新加载$用户总是被设置为0。

这里是我的代码:

//Get PHP SDK 
require_once 'facebook.php'; 
// Create our Application instance. 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
    'cookie' => true 
)); 
    // Get User ID 
    $user = $facebook->getUser(); 

    if ($user) { 
     try { 
      $user_profile = $facebook->api('/me'); 
      echo "logged in and authenticated"; 
     } catch (FacebookApiException $e) { 
      error_log($e); 
      $user = null; 
     } 
    } 

    // Ask for authorisation 
    if(!$user) { 
     $login_url = $facebook->getLoginUrl(
      array(
       'canvas' => 1, 
       'fbconnect' => 0, 
       'scope' => 'email,publish_stream', 
       'redirect_uri' => 'myurl - same as Site URL in app basic settings' 
      ) 
     ); 
     echo "<script> top.location.href='" . $login_url . "'</script>"; 
    } 


} 

后,用户已经授权该应用程序,它不再要求授权,所以我假设授权工作,但为什么$facebook->getUser()返回0?

重定向后的URL有两个查询字符串参数 - “状态”和“代码”。它们是否相关?我应该和他们一起做点什么吗?据我所知,我已经下载了最新的Facebook SDK,所以我不知道如何才能正常工作。

注:我通过AJAX调用上面的代码。

回答

0

好的,我已经对此进行了排序。 代码确实起作用,这只是我通过ajax运行这个问题。 一旦我用它作为一个适当的页面加载,而不是一个Ajax调用它一切工作:)