我已經創建了一個應用程序作爲頁面選項卡。如果有人直接打開網站網址,我需要重定向到Facebook應用。爲此,我需要檢查地址欄的內容,如果它不包含www.facebook.com,我將重定向到facebook-app url。但是,問題是,在Facebook的iframe內我無法獲得地址欄的內容。通過應用程序網站重定向到Facebook應用程序
如果有人直接訪問我的網站url,你能否告訴我一個很好的方法來啓用重定向到fb-app?
我已經創建了一個應用程序作爲頁面選項卡。如果有人直接打開網站網址,我需要重定向到Facebook應用。爲此,我需要檢查地址欄的內容,如果它不包含www.facebook.com,我將重定向到facebook-app url。但是,問題是,在Facebook的iframe內我無法獲得地址欄的內容。通過應用程序網站重定向到Facebook應用程序
如果有人直接訪問我的網站url,你能否告訴我一個很好的方法來啓用重定向到fb-app?
可能實現這一目標的最簡單的方法,就是做下一個檢查中JavaScript
:
if (window.top !== window){
window.location = 'http://facebook.com/YOUR_PAGE?sk=v_YOUR_APP_ID'
}
Facebook上張貼簽名的請求參數當您在粉絲專頁上打開一個應用程序。
您可以檢查該參數是否爲空。
在PHP中,
if(isset($_REQUEST["signed_request"]){
// Opened in facebook
}else{
//opened outside facebook.
}
在asp.net
if(Request.Form["signed_request"] !=null)
{
// Opened in facebook
}
else
{
// opened outside facebook.
}
BU頁面我不認爲這可以在我的應用程序的每個頁面中使用,因爲簽名的請求只在第一頁上,不是嗎? – akshay3004
設置一個cookie,當你得到一個signed_request.And檢查它後面的頁面。 – Jashwant
如果你是想重定向到一個標籤,這樣做更完整的方法是檢查「頁」參數只能通過已簽名的頁面選項卡請求發送。
原因是,只檢查簽名的請求,將允許用戶訪問一個網站的畫布你520px標籤的應用程序(即https://apps.facebook.com/yourapp你想要的東西可能不是。
因此,例如
$fb = new Facebook(array(
'appId' => <your_app_id>,
'secret' => <your_app_secret>);
$sr = $fb -> getSignedRequest();
,然後重定向用戶,因爲他們打
if (!($sr['page'])) {
die('<script>window.top.location = "<your_tab_url>"</script>');
};
我的確在最初的代碼錯誤這應該是''===不'!==' –