FB.login失败,FB.login上的执行停止

时间:2013-04-10 21:44:36

标签: api facebook-javascript-sdk

FB.login失败,FB.login上的执行停止。我只能看到几秒钟的facebook登录弹出窗口显示“正在加载”,然后它就消失了,没有任何反应。

我有身体标签

<div id="fb-root"></div>
    <script>
        window.fbAsyncInit = function() {
            // init the FB JS SDK
            FB.init({
            appId      : '129519787234412', // App ID from the App Dashboard
            channelUrl : '<?=URL?>facebookChannel.php', // Channel File for x-domain communication
            status     : true, // check the login status upon init?

            xfbml      : true  // parse XFBML tags on this 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_US/all.js";
             fjs.parentNode.insertBefore(js, fjs);
           }(document, 'script', 'facebook-jssdk'));


    </script>

在所有HTML之后,在脚本标记中:

$(".box_top_img").click(function(){ 

    FB.login(function(response) {

        if (response.authResponse) {
            FB.getAuthResponse()['accessToken'];
            FB.api('/me', function(response) {

                $.ajax({
                    url:"ajax/check_vote.php",
                    type:"POST",
                    data:response,
                    success:function(response){
                        var result = $.parseJSON(response);

                        if(result.code == 0){
                            $("#container_1").hide();
                            $("#container_2").hide();
                            $("#container_3").show();

                        }else if(result.code == 1){
                            $("#container_1").hide();
                            $("#container_2").show();
                            $("#container_3").hide();

                            $("#facebook_id").val(result.id);

                            if(result.first_name)
                                $("#name").val(result.first_name);
                            if(result.last_name)
                                $("#lastname").val(result.last_name);
                            if(result.email)
                                $("#email").val(result.email);

                        }else{
                            $("#container_1").show();
                            $("#container_2").hide();
                            $("#container_3").hide();

                        }
                    }
                });
            });
        } else {
            console.log('User cancelled login or did not fully authorize.');
        }
    }, {scope: 'email'});
});

谢谢!

2 个答案:

答案 0 :(得分:1)

检查应用设置页面上是否禁用沙盒模式

答案 1 :(得分:0)

您可以尝试将facebook-jssdk替换为fb-root。这应该有用。