0

我是一個初學者,當涉及到後端編程和API訪問。 我有一個簡單的Ajax請求到我從Facebook的文檔頁面複製的JQuery SDK,但它似乎沒有工作。Facebook的Jquery SDK FB.init()沒有初始化

我的代碼如下:

$.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沒有正確初始化。

回答

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); 
    }); 
}); 

希望這個幫助!