我有一个Facebook应用程序,但新用户存在问题。
使用直接网址http://eriknijland.nl/raaddestraat/时一切正常。新用户被重定向到“请求权限”屏幕。
但是当在http://apps.facebook.com/raaddestraat/使用Facebook Canvas页面时(在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'。
答案 0 :(得分:0)
在Canvas页面中,您处于iframe状态,因此执行HTTP级重定向只会更改iframe中的内容。目前,你正在尝试在facebook iframe中加载一个facebook页面 - 哪些错误。
而不是使用
<? header('location: ...');
你应该做一个javascript重定向。在此模式下,您提供的HTML文档除外:
,该文档为空白<script>
window.top.location = 'https://graph.facebook.com/oauth/autho....'
</script>
位置字符串是Facebook身份验证URL。