如何检查是否在画布外加载了Facebook应用程序

时间:2012-11-07 03:36:47

标签: javascript facebook

是否可以检查是否在画布中加载了应用程序? 我只希望人们在Facebook画布中使用我的应用程序,而不是在外面。

我正在使用Facebook Javascript SDK,在阅读有关signed_request(http://developers.facebook.com/docs/howtos/login/signed-request/)时,我看到当应用程序发布了signed_request在画布中加载。

但是我找不到任何方法在Javascript中检查这个,当使用FB.getLoginStatus时,总会有一个signed_request,无论它是否在画布内。

1 个答案:

答案 0 :(得分:1)

您似乎找到了解决方案:您必须使用PHP(或您使用的任何服务器端语言)来确定是否通过Facebook查看该页面。

对于那些没有弄明白的人,使用PHP来确定变量signed_request是否已发布到页面。如果不是,那么您可以重定向到相应的Facebook页面,或根据需要采取其他行动。

<?php
//if signed_request was not posted...
    if ( !isset ($_POST['signed_request'] ) ) 
        {
        $redirect = 'http://apps.facebook.com/exampleapp'; //the URL of your Facebook canvas app
        header('Location:'.$redirect); //redirect the browser there
        }
?>