Facebook权限窗口不会出现在使用JS SDK的平板电脑上

时间:2013-07-18 14:19:14

标签: facebook facebook-javascript-sdk facebook-sdk-3.0

我正在使用Facebook文档中的登录代码:

这在桌面浏览器中运行良好,但在平板电脑上,整个网站都会尝试重定向到https://m.facebook.com...网址而不是显示权限弹出窗口。它重定向到的页面只显示错误。弹出窗口不能在Facebook Javascript SDK中运行吗?

<div id="fb-root"></div>
<script type="text/javascript">

    var likesPage = false;
    var addisPageId = 'XXXXXX';


    window.fbAsyncInit = function () {
        // init the FB JS SDK
        FB.init({
            appId: 'XXXXXXX',                        // App ID from the app dashboard
            channelUrl: '/channel.html', // Channel file for x-domain comms
            status: true,                                 // Check Facebook Login status
            xfbml: true                                  // Look for social plugins on the page
        });

        // Additional initialization code such as adding Event Listeners goes here
    };

    // Load the SDK asynchronously
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) { return; }
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_gb/all.js";
        fjs.parentNode.insertBefore(js, fjs);
    } (document, 'script', 'facebook-jssdk'));
    function callLogin() {
        FB.login(function (response) {
            var access_token = FB.getAuthResponse()['accessToken'];
            $("#at").val(access_token);

            if (response.authResponse) {
                FB.api('/me/likes?fields=id', function (response) {

                    for (var i = 0; i < response.data.length; i++) {
                        if (response.data[i].id == addisPageId) {
                            likesPage = true;
                            break;
                        }
                    }
                    if (likesPage) {
                        FB.api('/me', function (userInfo) {
                            document.getElementById("email").value = userInfo.email;
                            document.getElementById("fbId").value = userInfo.id;
                            document.getElementById("fbform").submit();
                        });
                    } else {
                        document.getElementById("dontLikePage").style.display = "inline";
                    }
                });
            } else {
                window.parent.location = "https://www.facebook.com/XXXX";
            }
        }, { scope: 'user_likes,email,publish_stream' });

    }
</script>

1 个答案:

答案 0 :(得分:0)

这个问题有一段时间了。我通过使用Facebook登录按钮https://developers.facebook.com/docs/reference/plugins/login/来解决这个问题,这在平板电脑上运行正常,但是由于您所描述的问题,在javascript中使用fb.login只是错误。

相关问题