2012-09-13 40 views
2

我想要的代碼,將用戶重定向到我的應用程序,如果他/她嘗試打開我的應用程序託管網站。 爲前: 我的應用程序鏈接:https://apps.facebook.com/gaming-zone/ 應用託管鏈接:http://gaming-zone.herokuapp.com/重定向到我的應用程序,如果應用程序託管網站被訪問

我發現已經有一些代碼,但這些代碼汽車無重定向用戶時,如果他使用在Facebook上我的應用程序,他在玩什麼遊戲,然後還它將用戶重定向到應用程序主頁。 我想要確切的代碼,只有當他訪問我的託管網站時重定向用戶。

這些,我發現已經是代碼:

<script type='text/javascript'> 
if (window.top.location == window.location) 
    window.top.location = 'https://apps.facebook.com/gaming-zone/'; 
</script> 

回答

0

這裏是我使用的代碼:

<script type="text/javascript"> 
    function NotInFacebookFrame() { 
    return top === self; 
    } 
    function ReferrerIsFacebookApp() { 
    if(document.referrer) { 
     return document.referrer.indexOf("apps.facebook.com") != -1; 
    } 
    return false; 
    } 
    if (NotInFacebookFrame()) { 
    top.location.replace("https://apps.facebook.com/YOUR_APP_NAMESPACE"); 
    } 
</script> 

此檢查,如果他們是目前在Facebook的框架和,只有當他們沒有會重定向他們「https://開頭的應用程序。 facebook.com/YOUR_APP_NAMESPACE「

注意:你可以在你的應用程序的任何頁面上使用它,只需相應地更改URL即可。

例如:如果您在http://YourDomain.com/anotherpage.php利用這一點,你可以改變URL在上面的代碼https://apps.facebook.com/YOUR_APP_NAMESPACE/anotherpage.php

+0

非常感謝你的幫助這就是我想要的:) –

0

的問題是,你不能讀取window.top.location值。你只能寫它。奇怪,但多數民衆贊成它。

選項1:將您的應用程序安裝到頁面選項卡並創建一個類似門。像門將iframe總是會返回false iframe。

選項2:在後端加載頁面時檢查簽名的請求數據。

選項3:其他選項是檢查頂端網址,但是在後端。

+0

zsitro日Thnx你的迴應,你可以告訴我,我怎麼能做到這一點的選項2和3 PLZ給我的代碼:) –

+0

選項2:你可以在這裏找到資源:https://developers.facebook.com/docs/authentication/signed_request/ 和這裏: http://stackoverflow.com/questions/8229986/情況與簽名請求會議和php-sdk-3-0 選項3:繼承人如何你可以閱讀父母的網址:http://stackoverflow.com/a/8962276/1178072 我建議打印出結果並進行檢查。 祝你好運! – zsitro

+0

thnx爲你的幫助 –

相關問題