![](/img/trans.png)
[英]Facebook application, how to check if inside Facebook canvas / standalone using PHP?
[英]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.