1

我正在用 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 按钮。

什么是最好的解决方案?

-阿杰

4

2 回答 2

1

如果您的应用是在画布内打开的,那么您已经$_REQUEST['signed_request']设置好了。

if( isset($_REQUEST['signed_request']) )
{ 
   // I am in canvass
}
else
{
   // I am not in canvass
}
于 2013-02-27T10:43:01.807 回答
0

您可以检查应用程序是否在iframe(fb 画布)中并采取相应的行动:

<script type="text/javascript"> 
    if(window==window.top){ 
        top.location.href = '<?=$redirect_url?>';
    } 
</script>
于 2014-02-28T09:38:32.760 回答