2015-06-16 41 views
1

我有一個Facebook頁面 我已經建立了一個應用程序是在頁面標籤 的應用程序正常工作與原來的URL 它在facebook登錄並返回到URL裏面認證Facebook應用獲得的Facebook頁面

我怎麼能從用戶那裏得到authintication而不用改變「iframe裏面的url」?

require_once("facebook.php"); 
$facebook = new Facebook(array(
     'appId' => 'App_id', 
     'secret' => 'Secret')); 
$current_user = $facebook->getUser(); 

$params = array('scope' =>'email,user_likes,user_friends'); 
if ($current_user) { 
    try { 
      $expiration = time() + 172800; 
      $cookie_value = $current_user . '|' . $expiration; 
      setcookie('fbid', $cookie_value, $expiration , "/"); 
      echo '<script type="text/javascript"> 
      window.location = "like.php"; 
      </script>'; 
    } catch (FacebookApiException $e) { 
     $login_url = $facebook->getLoginUrl($params); 
     echo '<script type="text/javascript"> 
     window.location = "' . $login_url . '"; 
     </script>'; 
     exit; 
     error_log($e->getType()); 
     error_log($e->getMessage()); 
    } 
} else { 
    $login_url = $facebook->getLoginUrl($params); 
    echo '<script type="text/javascript"> 
     window.location = "'.$login_url.'"; 
     </script>'; 
    exit; 
} 
+3

如果你想從一個頁面標籤的應用程序中調用通過URL登錄對話框,那麼你必須做的是,在頂部窗口實例 - 'top.location.href ='login-url';'但是在page tab/canvas apps中處理登錄的更方便的方法是嵌入JS SDK,並使用它的'FB.login'方法。這並不需要重定向到不同的URL,而是通過簡單的覆蓋顯示登錄對話框 - 更好的用戶體驗。 – CBroe

回答

0

創建Facebook標籤的應用程序而不是web應用程序 和使用JS SDK