2010-06-20 98 views
0

我們面臨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;

 } 
    } 
}; 

現在我們無法找到解決這個問題。

任何一個可以幫助我們解決這個問題儘快

靈星爲最佳合作

+0

你能提供更多關於你的問題的細節嗎?你是否想使用GWT的常規JS Facebook庫?如果是這樣,哪一個,代碼是什麼樣的? – 2010-06-20 21:34:31

+0

@jason Hall我們在html頁面中使用以下腳本

相關問題