Facebook login with custom javascript sdk button

I am using JavaScript javascript sdk. I have created a custom facebook button and I am running on localhost. When I connect to Facebook, I don't get an authorized response. Also when I press the button the button press function doesn't work. How can I solve this problem?

Object {status: "not_authorized", authResponse: null}

HTML code

    <div class="col-md-12 text-center">
        <button class="loginBtn loginBtn--facebook" id="test">
            <span>Login with Facebook</span>
        </button>
    </div>

      

JS code

function statusChangeCallback(response) {
            console.log(response);
            if (accessToken) {
                var accessToken = response.authResponse.accessToken;
            }
            if (response.status === 'connected') {
                testAPI2(accessToken);
            } else if (response.status === 'not_authorized') {
                console.log("Err");
            } else {
                console.log("Err");
            }
        }

        function checkLoginState() {
            FB.getLoginStatus(function (response) {
                statusChangeCallback(response);
            });
        }

        window.fbAsyncInit = function () {
            FB.init({
                appId      : '39798***',
                cookie     : true,
                xfbml      : true,
                version    : 'v2.8'
            });

            FB.getLoginStatus(function (response) {
                statusChangeCallback(response);
            });
        };

        (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_EN/sdk.js";
            fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));

        function testAPI2() {
            FB.api('/me', { fields: 'id,name' },
                function (response) {
                    var user_id = response.id;//name
                    var name = response.name;
                    var type = 1;
                    $.ajax({
                        type: 'post',
                        url: "services/services.php",
                        //dataType : 'json',
                        data: {
                            type: 'facebookLogin',
                            facebookId: user_id
                        },
                        async: true,
                        cache: false,
                        success: function (data) {
                            console.log(data);
                            setTimeout(function () {
                            }, 1000);
                        },
                        error: function (data) {
                            console.log(data);
                            console.log("An error occurred");
                        }
                    });
                }
            );
        }

           $("#test").click(function(){
               checkLoginState();
           });

      

+3


source to share


1 answer


You must use FB.login to authorize users:

document.getElementById('test').addEventListener('click', function() {
    //do the login
    FB.login(statusChangeCallback, {scope: 'email,public_profile', return_scopes: true});
}, false);

      



For example: http://www.devils-heaven.com/facebook-javascript-sdk-login/

+4


source







All Articles