Итак, я пытаюсь объединить кучу кода в несколько хороших функций NameSpaced, но мне тяжело заставить его работать вместе. Например, у меня есть это (отредактировано для ясности):
YW.FB = function() {
return {
init: function(fncSuc, fncFail) {
FB.init(APIKey, "/services/fbconnect/xd_receiver.htm");
FB.Bootstrap.requireFeatures(["Connect"]);
if(typeof fncSuc=='function') fncSuc();
},
login: function(fncSuc) {
this.FB.Connect.requireSession(function() {
if(typeof fncSuc=='function') fncSuc();
});
},
getUserInfo: function() {
var userInfo = new Object;
FB.Facebook.apiClient.users_getInfo([FB.Facebook.apiClient.get_session().uid],["name"],function(result, ex){
userInfo.name = result[0]['name'];
userInfo.uid = result[0]['uid'];
userInfo.url = FBName.replace(/\s+/g, '-');
return userInfo;
})
}
};
}();
На обычной странице я могу просто сделать:
FB.init(APIKey, "/services/fbconnect/xd_receiver.htm");
FB.Bootstrap.requireFeatures(["Connect"]);
var userInfo = new Object;
FB.Facebook.apiClient.users_getInfo([FB.Facebook.apiClient.get_session().uid],["name"],function(result, ex){
userInfo.name = result[0]['name'];
userInfo.uid = result[0]['uid'];
userInfo.url = FBName.replace(/\s+/g, '-');
return userInfo;
})
И это работает.
Я пытался сделать:
YW.init();
YW.login();
YW.getUserInfo();
Но это не работает. Я продолжаю получать "FB.Facebook не определено" от YW.getUserInfo
Я мог бы делать все это неправильно. Таким образом, сотрудники FB.init, FB.Facebook используют библиотеки Facebook Connect. Я все делаю неправильно?