facebook问题:应用程序进入原始域

时间:2011-01-05 05:30:54

标签: php facebook facebook-graph-api

我正在使用PHP创建一个facebook应用程序并面临两个主要问题..

  1. 当我点击权限允许时,应用会将我带到我自己的域(存储应用程序的位置),而不是将其加载到iFrame中。

  2. 有时当我点击“不允许”时,它仍会让我进入并显示PHP错误,而有时(大多数情况下),它不会让我进入。

    < / LI>

    可能是什么问题?我可以以编程方式重定向到权限页面的任何方式?谢谢..

    if(empty ($this->session))
        {
            try
            {
                $login_url = $this->facebook->getLoginUrl();
                header("Location: ".$login_url);
            }
            catch(Exception $e)
            {
                header("Location: http://www.facebook.com");
            }
        }
        else
        {
            try
            {
                $this->uid = $this->facebook->getUser();
            }
            catch(Exception $e)
            {
                header("Location: http://www.facebook.com");
            }
        }
    

    请注意我所做的重定向是试图解决问题。但是没有例外。

2 个答案:

答案 0 :(得分:1)

如果您想获取登录网址,可以根据需要传递不同的参数。在您的情况下,要返回Facebook页面网址,您可以使用next参数。

这是您修改的代码:

$login_url = $this->facebook->getLoginUrl(
            array(
                'canvas'    => 1,
                'fbconnect' => 0,
                'next' => YOUR_CANVAS_PAGE_URL
            ) 
        );
if(empty ($this->session))
{
    echo "<script type='text/javascript'>top.location.href='$loginUrl';</script>";
    exit;
}
else
{
    try
    {
        $this->uid = $this->facebook->getUser();
    }
    catch(Exception $e)
    {
        echo "<script type='text/javascript'>top.location.href='$loginUrl';</script>";
        exit;
    }
}

让我知道它是否解决了你的问题:)

答案 1 :(得分:0)

如果页面不在iFrame中,我使用这个简单的脚本来应用重定向...

if(parent == window)
                {
                    window.location = "http://apps.facebook.com/appname/";
                }

这可能不是一个合法的解决方案,但为我解决了这个问题。任何人如果知道合法的方式,请发帖。感谢。