我們面臨facebook的一個問題 當我們的web應用程序通過fconnect登錄時,我們在我們的web應用程序中集成了FB隨後,他與我們的系統(僅1次)只提供他的電子郵件id.For普通用戶很少用戶註冊的I/p在我們的系統
在Java [GWT2.0]開發我們的web應用。
註冊問題是當FACEBOOK或normaluser通過我們的web應用程序中的FB登錄時(每次一個)
當用戶r然後efreshes頁面彈出FB窗口Occues有消息
「調試:異常而加載FB.apiClient類型錯誤:$ wnd.FB.Facebook是未定義」
或有時$ wnd.FB.Facebook.apiClient爲空發生
我們得到3次以上錯誤[彈出]消息。
我們在HTML頁面中使用下面的腳本 <腳本類型= 「文/ JavaScript的」 語言= 「JavaScript的」 SRC =「http://static.ak.connect.facebook.com/js/api_lib/v0。 4/FeatureLoader.js.php「>
我們的網頁應用程序只有1頁,即UserHome頁面,我們顯示用戶信息。 該頁面僅上述錯誤信息上發生
我們用下面的GWT代碼[從Gwittit在控制器類[Singleton類]
/** * Function get called when all the data on first page get loaded. * * */ public void notifyFinishedLoadinPage() { FacebookConnect.waitUntilStatusReady(new RenderAppWhenReadyCallback());
}
private MyLoginCallback loginCallback = new MyLoginCallback();
class MyLoginCallback implements LoginCallback { public void onLogin() { isFacebookSign = true; fbLoggedInUserId = ApiFactory.getInstance().getLoggedInUser(); for (FacebookObserver Observer : facebookObservers) { Observer.notifyFacebookLogin(true); } } } public void publishStream(final FacebookObserver fbObserver) { FacebookConnect.init(FacebookConstants.FACEBOOK_API_KEY,
"xd_receiver.htm", loginCallback);
FacebookConnect.requireSession(new
AsyncCallback() {
public void onFailure(Throwable caught) { Window.alert("Require session failed: " + caught); GWT.log("Require session failed: " + caught, null); } public void onSuccess(Boolean isLoggedIn) { if (isLoggedIn) { for (FacebookObserver Observer :
facebookObservers) { Observer.notifyPublishStream(); } } } });
} public void facebookConnection() { FacebookConnect.init(FacebookConstants.FACEBOOK_API_KEY,
"xd_receiver.htm", loginCallback); //SERVER FacebookConnect.requireSession(new AsyncCallback() {
public void onFailure(Throwable caught) { GWT.log("Require session failed: " + caught, null); } public void onSuccess(Boolean isLoggedIn) { if (loginCallback != null && isLoggedIn) { loginCallback.onLogin(); } else { //User not logged in } } }); } /** * Fired when we know users status */ private class RenderAppWhenReadyCallback implements
AsyncCallback {
public RenderAppWhenReadyCallback() { FacebookConnect.init(FacebookConstants.FACEBOOK_API_KEY,
"xd_receiver.htm", loginCallback); //SERVER }
public void onFailure(Throwable caught) { Window.alert("Unable to login through Facebook: " + caught); } public void onSuccess(ConnectState result) { if (result == ConnectState.connected) { isFacebookSign = true; for (FacebookObserver Observer : facebookObservers) { Observer.notifyFacebookLogin(true); } //History.newItem(HistoryConstants.USERHOME_PAGE_HISTORY_TOKEN); } else { //rightSideFlexTable.clearCell(0, 0); //rightSideFlexTable.setWidget(0, 0,
facebookPanel); isFacebookSign = false;
} } };
現在我們無法找到解決這個問題。
任何一個可以幫助我們解決這個問題儘快
靈星爲最佳合作
你能提供更多關於你的問題的細節嗎?你是否想使用GWT的常規JS Facebook庫?如果是這樣,哪一個,代碼是什麼樣的? – 2010-06-20 21:34:31
@jason Hall我們在html頁面中使用以下腳本