2010-03-29 92 views
0

我想在Facebook上創建包裝函數JavaScript連接API方法。如何從Facebook返回值Javascript連接API函數

我的問題是我無法在Facebook API FB_RequireFeatures方法中返回一個值。

我希望我的isFBConnected()函數根據我是否登錄到Facebook返回true或false。

發生了什麼事情是,當我返回true時,它將它返回給子函數,但是我的全局「登錄」變量沒有設置爲true。

我試着設置超時等待Facebook連接完成執行,但仍然沒有運氣。

歡迎任何幫助或其他解決方案!

我isFBConnected包裝函數如下陳述:

功能isFBConnected(){

var api_key    = '<?=$this->apiKey?>'; 
var channel_path  = '<?=$this->xdReceiver?>'; 
var host_url   = '<?=$this->hostUrl?>'; 
var servicePathShort = '<?=$this->servicePathShort?>'; 
var login    = false; 

FB_RequireFeatures(["Api"], function(){ 

    // Create an ApiClient object, passing app's API key and 
    // a site relative URL to xd_receiver.htm 
    FB.Facebook.init(api_key, channel_path); 

    var api = FB.Facebook.apiClient; 
    // If FB user session exists - load stats data 
    if(api.get_session()!=null){ 
     if(api.get_session().uid!='' && api.get_session().uid!=undefined){ 
      login = true; 
      alert(api.get_session().uid); 
      return true; 
     } 
    } 
    login = false; 
    return false; 
}); 

return false; 

}

回答

0

嗯,首先,你知道FB_RequireFeatures函數的第二個參數是一個回調函數,這意味着你的IsFBConnected功能將會總是返回false,對吧?你真的需要FB_RequireFeatures功能嗎?你能直接調用FB.init嗎?