Facebook Javascript SDK FB not defined

Facebook Javascript SDK FB not defined

本文关键字:not defined FB SDK Javascript Facebook      更新时间:2023-09-26

使用Facebook Javascript SDK 时出现错误FB not defined

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

Jsfddle

两件事-

  1. 我看不到JS SDK已经加载。

  2. 您必须在异步加载SDK后调用FB函数,否则它将抛出FB is not defined

所以,要修复它-

// 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() {
   ...
   ...
}

参考

编辑:

我看到你正在请求权限email,但没有使用它。使用带有-response.email 的实际电子邮件(而不是facebook电子邮件)