Javascript 如何检测facebook画布应用程序位置

Javascript 如何检测facebook画布应用程序位置,javascript,php,facebook,canvas,facebook-apps,Javascript,Php,Facebook,Canvas,Facebook Apps,我试图在访问我的应用程序时检测用户的位置入口点 如果用户第一次来到apps.facebook.com/foobar,那么他们有一个签名的请求,我可以设置一个会话变量。但是现在session变量表示它们位于canvas应用程序中。因此,如果他们访问foobar.com,他们将被视为在画布应用程序中,我希望避免这种情况。我试图找到一种方法,每次他们来到应用程序时,都能100%肯定地检查他们是否在facebook画布上。您可以使用JavaScript来完成此操作,请尝试以下方法: // Store s

我试图在访问我的应用程序时检测用户的位置入口点


如果用户第一次来到apps.facebook.com/foobar,那么他们有一个签名的请求,我可以设置一个会话变量。但是现在session变量表示它们位于canvas应用程序中。因此,如果他们访问foobar.com,他们将被视为在画布应用程序中,我希望避免这种情况。我试图找到一种方法,每次他们来到应用程序时,都能100%肯定地检查他们是否在facebook画布上。

您可以使用
JavaScript
来完成此操作,请尝试以下方法:

// Store session for is located in the canvas app
var isLocatedInCanvas = <?php echo isset($_SESSION['isLocatedInCanvas']) ? 'true' : 'false'; ?>;
// Check if app is not in an iframe and isLocatedInCanvas is true
if (window.location == top.window.location && isLocatedInCanvas) {
    // Now redirect the user to clear session page and unset or clear isLocatedInCanvas value
    window.location = 'clear-session.php';
    // After clearing the session send the user to home page (foobar.com)
}
//的存储会话位于canvas应用程序中
var isLocatedInCanvas=;
//检查应用程序是否不在iframe中,IsLocatedCanvas是否为true
if(window.location==top.window.location&&isLocatedCanvas){
//现在将用户重定向到clear session page并取消设置或清除IsLocatedCanvas值
window.location='clear session.php';
//清除会话后,将用户发送到主页(foobar.com)
}