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 to share