我试图在Facebook JavaScript connect API方法上创建包装函数。
我的问题是,我无法在Facebook API FB_RequireFeatures方法中返回值。
我希望我的isFBConnected()函数根据我是否登录Facebook返回true或false。
实际情况是,当我返回true时,它会将其返回给子函数,这是有意义的,但是,我的全局“login”变量没有设置为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;
}