2010-06-20 6 views
0

웹 응용 프로그램에서 fconnect를 통해 사용자가 로그인 할 때 FB를 웹 응용 프로그램에 통합했습니다. 그는 우리의 시스템 (만 1 시간) 우리의 시스템

자바 [GWT2.0]에서 개발

우리의 웹 응용 프로그램입니다.

을 자신의 이메일 id.For 일반 사용자 소수의 사용자 등록을위한 전/P를 제공하는 등록

웹 응용 프로그램에서 FACEBOOK 또는 일반 사용자가 FB를 통해 로그인하는 경우 (한 번에 1 개)

사용자 r 메시지 efreshes 페이지는 FB 팝업 창 Occues

"디버그 : 예외 동안로드 FB.apiClient 형식 오류 : wnd.FB.Facebook은 정의되지 $"

또는 때때로 $ wnd.FB.Facebook.apiClient null occures

위의 오류 [팝업] 메시지가 3 번 울립니다.

우리는 HTML 페이지에 < 스크립트 유형 = "텍스트/자바 스크립트"언어를 다음 스크립트를 사용 = "자바 스크립트" SRC = "http://static.ak.connect.facebook.com/js/api_lib/v0. 4/FeatureLoader.js.php ">

사용자 정보를 표시하는 웹 응용 프로그램 즉, UserHome 페이지의 단 한 페이지에만. 유일한 오류 메시지가 위의 해당 페이지에 우리는 컨트롤러 클래스에서 [Gwittit에서] GWT 코드 [싱글 톤 클래스를] 다음 사용

발생

/** * 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 라이브러리를 사용하려고합니까? 그렇다면 어느 것이고 코드는 어떻게 생겼는가? –

+0

@ jason Hall 우리는 HTML 페이지에서 다음 스크립트를 사용했습니다.

관련 문제