Question

I get error FB not defined when using Facebook Javascript SDK

FB.init({
    appId: '{APP ID}',
    status: true,
    cookie: true,
    xfbml: true
});

Jsfiddle

Était-ce utile?

La solution

Two things-

  1. I can't see the JS SDK been loaded.

  2. You have to call your FB functions after the SDK is loaded asynchronously, else it will throw that FB is not defined

So, to fix it-

// This will be triggered automatically after the SDK is loaded successfully
// write your FB fucntions inside this
window.fbAsyncInit = function() {
   FB.init({
     appId: '{app-id}',
     status: true,
     cookie: true,
     xfbml: true
   });

   FB.getLoginStatus(function (response) {
     if (response.status === 'connected') {
        GetData();
     } else {
        Login();
     }
  });
};

// JS SDK - this will be loaded 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'));

function Login() {
   ...
   ...
}

function GetData() {
   ...
   ...
}

Reference

Edit:

I saw that you are requesting for the permission email and yet not using it. Use the actual email (not the facebook one) with- response.email

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top