脸书问题:应用程序转到原始域
-
25-09-2019 - |
题
我正在使用 PHP 创建一个 facebook 应用程序,面临两个主要问题..
当我单击权限上的“允许”时,应用程序会将我带到我自己的域(存储应用程序的位置),而不是将其加载到 iFrame 中。
有时,当我单击“不允许”时,它仍然让我进入并显示 PHP 错误,而有时(大多数时候),它不让我进入。
可能是什么问题呢?有什么方法可以以编程方式重定向到权限页面吗?谢谢..
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
如果页面不在 iFrame 内,我使用这个简单的脚本来应用重定向...
if(parent == window)
{
window.location = "http://apps.facebook.com/appname/";
}
这可能不是一个法律解决方案,但为我解决了问题。谁知道合法途径请留言。谢谢。
其他提示
当您想要获取登录网址时,您可以根据需要传递不同的参数。在您的情况下,要返回 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;
}
}
如果它解决了您的问题,请告诉我:)
不隶属于 StackOverflow