0

我有一个使用 Facebook Connect 对用户进行身份验证的移动网站。我在使用 Opera Mobile 登录时遇到问题。我有以下 javascript 来检测登录状态,但只有在 Opera Mobile 中回调没有触发。有人遇到过这个问题吗?

window.fbAsyncInit = function () {
        FB.init({
            appId: 'xxxx',
            channelUrl: 'http://xxxx/channel.html',
            status: true,
            cookie: true,
            xfbml: true
        });

        FB.Event.subscribe('auth.statusChange', handleStatusChange);
    };

function handleStatusChange(response) { // --> NOT FIRE
    if (response.authResponse) {
        //Login, show Logout button
    }
    else {
        //Show Login button

    }
}
4

2 回答 2

0

请确保将 JS 标记和其他必需的 HTML 按逻辑顺序放置(如果您使用 fb-root 元素,请将脚本放在其后,如果它们当前位于 HEAD 中,请尝试将它们放入 BODY 中)。我已经看到 FB 登录失败是因为标签的顺序错误,并且因为某些浏览器会进行“推测性解析”,这种随机跨浏览器故障的原因可能不会立即明显。(此外,如果网络出现故障并且加载内容的时间出乎意料,您创建的竞争条件可能会在任何浏览器中中断......)

如果您仍然有问题,获取链接或演示会很有用。我们测试了一个使用 FB Connect 的随机页面并且运行良好。除了标签顺序问题之外,我无法猜测您在这里可能会出现什么问题。

于 2012-09-21T07:48:37.727 回答
0

Opera Mobile 今天发布了新版本 (12.10.ADR-1210081231)。它解决了 Facebook 登录问题,但有一个小问题。Facebook 窗口不会在用户登录后自动关闭。

于 2012-10-09T09:51:20.900 回答