![](/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.