2012-08-11 48 views
0

我在Facebook上有一個應用程序,我只使用pagetabs,一切都會好的。我點擊,我允許應用程序,請求權限,但是現在它回到頁面,並且出現錯誤,一遍又一遍地重新加載...頁面無法加載,因爲瀏覽器總是重新加載它,我不知道如何解決它?頁面標籤中的oauth facebook重新加載

非常感謝

這裏是我的代碼:

<?php 

require_once "sdk/facebook.php"; 

$app_id = "MY_APPID"; 
$app_secret = "MY_SECRET"; 

$is_fan = false; 

// Init facebook api. 
$facebook = new Facebook(array(
    'appId' => $app_id, 
    'secret' => $app_secret, 
    'cookie' => true 
)); 

// Get and decode signed request. 
$signed_request = $facebook->getSignedRequest(); 
if (isset($_REQUEST['signed_request'])) { 
    $encoded_sig = null; 
    $payload = null; 
    list($encoded_sig, $payload) = explode(
     '.', $_REQUEST['signed_request'], 2 
    ); 
    $sig = base64_decode(strtr($encoded_sig, '-_', '+/')); 
    $data = json_decode(
     base64_decode(strtr($payload, '-_', '+/'), true) 
    ); 
    $signed_request = $data; 
} 
else { 
    $signed_request = false; 
} 

// Determine if we have a fan request. 
if($signed_request) { 
    if($signed_request->page->liked) { 
     $is_fan = true; 
    } 
} 

// for fans 
if ($is_fan) { ?> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link href="css/style.css" rel="stylesheet" type="text/css" />  

    <script> 
     var oauth_url = 'https://www.facebook.com/dialog/oauth/'; 
     oauth_url += '?client_id=414328901957674'; 
     oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/pages/null/167838393340757/?sk=app_414328901957674'); 
     oauth_url += '&scope=user_birthday,user_likes,photo_upload,publish_stream,user_about_me,user_photos,user_hometown,user_location' 

     window.top.location = oauth_url; 
    </script> 

    </head> 
    <body background="images/fanda.jpg" style="overflow:hidden;""> 
     </body> 

<?php } 

// for non-fans 
else { ?> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link href="css/style.css" rel="stylesheet" type="text/css" />  
    </head> 
    <body background="images/klikni-like.jpg" style="overflow:hidden;"> 
    </body> 

<?php } ?> 

回答

0

當某人是一個球迷你的腳本總是做:

window.top.location = oauth_url; 

如果有人是粉絲,這將導致頁面無限重新加載。

0

我找到了解決問題的辦法。當您檢查($ is_fan)時是否更新:

$user_id = $facebook->getUser(); 
if ($is_fan) { 
     if($user_id) 
      { 
       code after authentication and page Liked 
      } 

      } 
else { 
      <script> 
       var oauth_url = 'https://www.facebook.com/dialog/oauth/'; 
       ................ Next 4 lines same as the above code .............. 
      </script> 
     }