Facebook登录显示徽标而不是权限请求
问题描述:
我有Facebook应用程序,但新用户有问题。Facebook登录显示徽标而不是权限请求
当使用直接URL http://eriknijland.nl/raaddestraat/一切工作正常。新用户将被重定向到“请求许可”屏幕。
但是,当使用Facebook的Canvas页面http://apps.facebook.com/raaddestraat/(在iframe中加载前面提到的URL)时,第一次用户可以看到Facebook徽标而不是许可请求。点击徽标重定向到此权限屏幕。但用户很少点击该标志,因为它很不清楚。
如何正确解决这个问题?
我的简化的登录码:
function login()
{
$authorizationUrl = 'https://graph.facebook.com/oauth/authorize?client_id=' . $this->_applicationId . '&redirect_uri=' . $this->_redirectUrl;
header('Location: ' . $authorizationUrl);
exit();
}
的_redirectUrl指向一个授权功能。但新用户永远不会在这里结束。因为它需要Facebook的权限。
我读过&尝试使用location.href而不是PHP重定向。它没有效果。使用top.location.href有效。它正在工作。但我不希望我的应用程序退出“Facebook canvas iframe”。
答
在Canvas页面中,您位于iframe中,因此只执行HTTP级重定向会更改iframe中的内容。目前,您正尝试在Facebook iframe中加载一个Facebook页面 - 哪些错误。
而不是使用
<? header('location: ...');
你应该做一个JavaScript重定向的。在此模式下,提供HTML文件,该文件是除了这个空白:
<script>
window.top.location = 'https://graph.facebook.com/oauth/autho....'
</script>
凡位置字符串是Facebook验证URL。
此外,当使用JavaScript版本FB.login()时,它也可以工作。但在很多情况下被阻塞,因为它取决于弹出窗口。 – Erik 2011-02-13 20:32:24