2012-06-22 66 views
0

我在http://apps.facebook.com/myappname上有一個應用程序,它是http://mydomain.com的畫布頁。將我的domain.com重定向到Facebook畫布頁

我不希望用戶訪問mydomain.com,所以我想重定向他到http://apps.facebook.com/myappname

什麼是最好的wat做這個?我試圖通過JavaScript,PHP和htaccess重定向,但我得到一個錯誤,因爲Facebook使用我的網址加載畫布頁面。有沒有解決方案?

+0

看到這個線程。 http://stackoverflow.com/questions/6076359/force-facebook-app-to-use-page-tab-iframe – cpilko

+0

問題是,FB.Canvas.getPageInfo只適用於apps.facebook.com/appname。外面時我無法使用它。任何建議? –

回答

2

的JavaScript:

function referrerIsFacebookApp() { 
    if(document.referrer) { 
     return document.referrer.indexOf("facebook.com") !== -1; 
    } 
    return false; 
} 
if (!referrerIsFacebookApp()) { 
    top.location.replace("http://apps.facebook.com/APP_NAME_SPACE"); 
} 

PHP:

function referrerIsFacebookApp() { 
    if (strpos($_SERVER['HTTP_REFERER'], "facebook.com") === false || strpos($_SERVER['HTTP_REFERER'], "facebook.com/l.php?u=") !== false) { 
     return false; 
    } 
    return true; 
} 
if (!referrerIsFacebookApp()) { 
    header("Location: http://apps.facebook.com/APP_NAME_SPACE"); 
} 
+0

不錯!我使用了與php變量相同的邏輯:$ _SERVER ['HTTP_REFERER'] –

+0

Hola Pedro,我已經使用上面的JavaScript代碼的PHP等效語言更新了我的答案。猜猜你已經以類似的方式做到了。 – borisdiakur

+0

你有任何解決方案重定向與url的各自參數? –

0

只需在您的應用程序加載到其iframe時檢查signed_request參數傳輸。

+0

但signed_request沒有關於它的數據。看看我的簽名的請求的: 陣列(大小= 6) '算法'=>字符串 'HMAC-SHA256'(長度= 11) '到期'=> INT 1340391600 'issued_at'=> INT 1340385170 'oauth_token'=>字符串'XXXX'(長度= 2) '用戶'=> array'(size = 3) 'country'=>'br'(length = 2) 'locale'=> pt_BR'(length = 5) 'age'=> array(size = 1) 'min'=> int 21 'user_id'=>字符串'XXXX'(長度= 9) –

+0

糟糕,僅適用於頁面選項卡,正確。 – CBroe

相關問題