Facebook登录显示徽标而不是请求权限

时间:2011-02-13 20:08:09

标签: facebook permissions login

我有一个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'。

1 个答案:

答案 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。