Facebook Jquery SDK FB.init()未初始化

时间:2015-11-08 17:00:01

标签: javascript jquery facebook facebook-graph-api facebook-javascript-sdk

在后端编程和API访问方面,我是初学者。 我对JQuery SDK有一个简单的ajax请求,我从Facebook的文档页面复制了它,但它似乎没有用。

我的代码如下:

$.ajaxSetup({ cache: true });
$.getScript('http://connect.facebook.net/en_US/sdk.js', function(){
FB.init({
  appId: '{socialApp}',
  version: 'v2.5' 
}); 
console.log(FB);    
});


$('#getInfo').click(function() {
FB.login(function(response) {
    if (response.authResponse) {
      console.log('Welcome!  Fetching your information.... ');
      FB.api('/me', function(response) {
      console.log('Good to see you, ' + response.name + '.');
      });
    } else {
      console.log('User cancelled login or did not fully authorize.');
    }
    });
});

当调用FB.login()时,我收到错误提示:

FB.login() called before FB.init().

这是为什么?另外,当我在console.log(FB)时,我确实得到了FB对象,但FB.init.appID和FB.init.version甚至没有设置,所以我认为FB.init没有正确初始化。

1 个答案:

答案 0 :(得分:0)

我认为您的代码是从page复制的。

看起来$ .getScript中的函数()无法正常工作。

首先,我认为你应该检查你的html页面中的jquery插件。

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

然后,尝试实现$(document).ready();像这样

$(document).ready(function() {
  $.ajaxSetup({ cache: true });
  $.getScript('//connect.facebook.net/en_US/sdk.js', function(){
    FB.init({
      appId: '{socialApp}',
      version: 'v2.5'
    });     
    console.log(FB);  
  });
}); 

希望这有帮助!!!