簡體   English   中英

您怎么知道您的Web應用程序是在Facebook內部(畫布)還是在外部(獨立)打開?

[英]How do you know if your web application is opening inside Facebook (canvass) or outside (standalone)?

我正在使用PHP為我的應用程序創建一個登錄頁面。 我的應用程序使用fconnect登錄。 現在,

如果我獨立打開Web應用程序(www.acdef.com),它應該顯示fconnect登錄。 如果在Facebook(apps.facebook.com/myapp)內部打開,則不應顯示fconnect登錄名,並且應取決於哪個用戶顯示fb權限或應用程序登錄頁面。 這是我所做的

if( (isset($_SERVER['HTTP_REFEREER']) && strpos($_SERVER['HTTP_REFEREER'], "facebook.com") !==false) || (isset($this->request->get['ref']) && strpos($this->request->get['ref'], "facebook.com") !==false))
{ 
   // I am in canvass
}
{
   // I am not in canvass
}

但是,它並不總是有效。 即使在畫布中,很多次我也看到fblogin按鈕。

什么是最好的解決方案?

-阿傑

如果您的應用是在畫布中打開的,則需要設置$_REQUEST['signed_request']

if( isset($_REQUEST['signed_request']) )
{ 
   // I am in canvass
}
else
{
   // I am not in canvass
}

您可以檢查該應用程序是否位於iframe (fb畫布)中,並相應地采取如下操作:

<script type="text/javascript"> 
    if(window==window.top){ 
        top.location.href = '<?=$redirect_url?>';
    } 
</script>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM