我正在使用PHP创建一个facebook应用程序并面临两个主要问题..
当我点击权限允许时,应用会将我带到我自己的域(存储应用程序的位置),而不是将其加载到iFrame中。
有时当我点击“不允许”时,它仍会让我进入并显示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");
}
}
请注意我所做的重定向是试图解决问题。但是没有例外。
答案 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/";
}
这可能不是一个合法的解决方案,但为我解决了这个问题。任何人如果知道合法的方式,请发帖。感谢。